{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"cancun\",\"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/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"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/forge-std/src/StdUtils.sol":"StdUtils"},"evmVersion":"cancun","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/StdUtils.sol","id":12015,"exportedSymbols":{"IMulticall3":[32500],"MockERC20":[33077],"MockERC721":[33682],"StdUtils":[12014],"VmSafe":[15270]},"nodeType":"SourceUnit","src":"32:10624:12","nodes":[{"id":11230,"nodeType":"PragmaDirective","src":"32:31:12","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":11231,"nodeType":"PragmaDirective","src":"65:33:12","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":11233,"nodeType":"ImportDirective","src":"100:57:12","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IMulticall3.sol","file":"./interfaces/IMulticall3.sol","nameLocation":"-1:-1:-1","scope":12015,"sourceUnit":32501,"symbolAliases":[{"foreign":{"id":11232,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32500,"src":"108:11:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11235,"nodeType":"ImportDirective","src":"158:48:12","nodes":[],"absolutePath":"lib/forge-std/src/mocks/MockERC20.sol","file":"./mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":12015,"sourceUnit":33078,"symbolAliases":[{"foreign":{"id":11234,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33077,"src":"166:9:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11237,"nodeType":"ImportDirective","src":"207:50:12","nodes":[],"absolutePath":"lib/forge-std/src/mocks/MockERC721.sol","file":"./mocks/MockERC721.sol","nameLocation":"-1:-1:-1","scope":12015,"sourceUnit":33697,"symbolAliases":[{"foreign":{"id":11236,"name":"MockERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33682,"src":"215:10:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11239,"nodeType":"ImportDirective","src":"258:32:12","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":12015,"sourceUnit":15858,"symbolAliases":[{"foreign":{"id":11238,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15270,"src":"266:6:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12014,"nodeType":"ContractDefinition","src":"292:10363:12","nodes":[{"id":11245,"nodeType":"VariableDeclaration","src":"535:96:12","nodes":[],"constant":true,"mutability":"constant","name":"multicall","nameLocation":"564:9:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32500","typeString":"contract IMulticall3"},"typeName":{"id":11241,"nodeType":"UserDefinedTypeName","pathNode":{"id":11240,"name":"IMulticall3","nameLocations":["535:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":32500,"src":"535:11:12"},"referencedDeclaration":32500,"src":"535:11:12","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32500","typeString":"contract IMulticall3"}},"value":{"arguments":[{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":11243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"588:42:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11242,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32500,"src":"576:11:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMulticall3_$32500_$","typeString":"type(contract IMulticall3)"}},"id":11244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"576:55:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32500","typeString":"contract IMulticall3"}},"visibility":"private"},{"id":11262,"nodeType":"VariableDeclaration","src":"637:92:12","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"661:2:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15270","typeString":"contract VmSafe"},"typeName":{"id":11247,"nodeType":"UserDefinedTypeName","pathNode":{"id":11246,"name":"VmSafe","nameLocations":["637:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":15270,"src":"637:6:12"},"referencedDeclaration":15270,"src":"637:6:12","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15270","typeString":"contract VmSafe"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":11256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"707:17:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":11255,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"697:9:12","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"697:28:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"689:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11253,"name":"uint256","nodeType":"ElementaryTypeName","src":"689:7:12","typeDescriptions":{}}},"id":11258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"689:37:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"681:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11251,"name":"uint160","nodeType":"ElementaryTypeName","src":"681:7:12","typeDescriptions":{}}},"id":11259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"681:46:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"673:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11249,"name":"address","nodeType":"ElementaryTypeName","src":"673:7:12","typeDescriptions":{}}},"id":11260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"673:55:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11248,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15270,"src":"666:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15270_$","typeString":"type(contract VmSafe)"}},"id":11261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"666:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15270","typeString":"contract VmSafe"}},"visibility":"private"},{"id":11265,"nodeType":"VariableDeclaration","src":"735:86:12","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE2_ADDRESS","nameLocation":"760:16:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11263,"name":"address","nodeType":"ElementaryTypeName","src":"735:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":11264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:42:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"private"},{"id":11268,"nodeType":"VariableDeclaration","src":"827:127:12","nodes":[],"constant":true,"mutability":"constant","name":"INT256_MIN_ABS","nameLocation":"852:14:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11266,"name":"uint256","nodeType":"ElementaryTypeName","src":"827:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":11267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"877:77:12","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"visibility":"private"},{"id":11271,"nodeType":"VariableDeclaration","src":"960:129:12","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"985:15:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11269,"name":"uint256","nodeType":"ElementaryTypeName","src":"960:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":11270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1011:78:12","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"private"},{"id":11274,"nodeType":"VariableDeclaration","src":"1095:125:12","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1120:11:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11272,"name":"uint256","nodeType":"ElementaryTypeName","src":"1095:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":11273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1142:78:12","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"private"},{"id":11277,"nodeType":"VariableDeclaration","src":"1339:85:12","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"1364:15:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11275,"name":"address","nodeType":"ElementaryTypeName","src":"1339:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":11276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1382:42:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"private"},{"id":11407,"nodeType":"FunctionDefinition","src":"1646:1263:12","nodes":[],"body":{"id":11406,"nodeType":"Block","src":"1746:1163:12","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11289,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"1764:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11290,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"1771:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1764:10:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320626f756e642875696e743235362c75696e743235362c75696e74323536293a204d6178206973206c657373207468616e206d696e2e","id":11292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1776:64:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2","typeString":"literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\""},"value":"StdUtils bound(uint256,uint256,uint256): Max is less than min."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2","typeString":"literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\""}],"id":11288,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1756:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:85:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11294,"nodeType":"ExpressionStatement","src":"1756:85:12"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11295,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2070:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":11296,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2075:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2070:8:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11298,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2082:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11299,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2087:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2082:8:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2070:20:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11304,"nodeType":"IfStatement","src":"2066:34:12","trueBody":{"expression":{"id":11302,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2099:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11287,"id":11303,"nodeType":"Return","src":"2092:8:12"}},{"assignments":[11306],"declarations":[{"constant":false,"id":11306,"mutability":"mutable","name":"size","nameLocation":"2119:4:12","nodeType":"VariableDeclaration","scope":11406,"src":"2111:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11305,"name":"uint256","nodeType":"ElementaryTypeName","src":"2111:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11312,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11307,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2126:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11308,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2132:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2126:9:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2138:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2126:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2111:28:12"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11313,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2329:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"33","id":11314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2334:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2329:6:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11316,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11306,"src":"2339:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11317,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2346:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2339:8:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2329:18:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11324,"nodeType":"IfStatement","src":"2325:38:12","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11320,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2356:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11321,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2362:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2356:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11287,"id":11323,"nodeType":"Return","src":"2349:14:12"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11325,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2377:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":11326,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11274,"src":"2382:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"33","id":11327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2396:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2382:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2377:20:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11330,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11306,"src":"2401:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11331,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11274,"src":"2408:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11332,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2422:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2408:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2401:22:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2377:46:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11343,"nodeType":"IfStatement","src":"2373:82:12","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11336,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2432:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11337,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11274,"src":"2439:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11338,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2453:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2439:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11340,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2438:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2432:23:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11287,"id":11342,"nodeType":"Return","src":"2425:30:12"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11344,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2555:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11345,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2559:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2555:7:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11374,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2734:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11375,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2738:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2734:7:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11404,"nodeType":"IfStatement","src":"2730:173:12","trueBody":{"id":11403,"nodeType":"Block","src":"2743:160:12","statements":[{"assignments":[11378],"declarations":[{"constant":false,"id":11378,"mutability":"mutable","name":"diff","nameLocation":"2765:4:12","nodeType":"VariableDeclaration","scope":11403,"src":"2757:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11377,"name":"uint256","nodeType":"ElementaryTypeName","src":"2757:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11382,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11379,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2772:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11380,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2778:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2772:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2757:22:12"},{"assignments":[11384],"declarations":[{"constant":false,"id":11384,"mutability":"mutable","name":"rem","nameLocation":"2801:3:12","nodeType":"VariableDeclaration","scope":11403,"src":"2793:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11383,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11388,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11385,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11378,"src":"2807:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":11386,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11306,"src":"2814:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2807:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2793:25:12"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11389,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11384,"src":"2836:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2843:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2836:8:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11394,"nodeType":"IfStatement","src":"2832:24:12","trueBody":{"expression":{"id":11392,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2853:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11287,"id":11393,"nodeType":"Return","src":"2846:10:12"}},{"expression":{"id":11401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11395,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11286,"src":"2870:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11396,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2879:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11397,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11384,"src":"2885:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2879:9:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2891:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2879:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2870:22:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11402,"nodeType":"ExpressionStatement","src":"2870:22:12"}]}},"id":11405,"nodeType":"IfStatement","src":"2551:352:12","trueBody":{"id":11373,"nodeType":"Block","src":"2564:160:12","statements":[{"assignments":[11348],"declarations":[{"constant":false,"id":11348,"mutability":"mutable","name":"diff","nameLocation":"2586:4:12","nodeType":"VariableDeclaration","scope":11373,"src":"2578:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11347,"name":"uint256","nodeType":"ElementaryTypeName","src":"2578:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11352,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11349,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2593:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11350,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2597:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2593:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2578:22:12"},{"assignments":[11354],"declarations":[{"constant":false,"id":11354,"mutability":"mutable","name":"rem","nameLocation":"2622:3:12","nodeType":"VariableDeclaration","scope":11373,"src":"2614:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11353,"name":"uint256","nodeType":"ElementaryTypeName","src":"2614:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11358,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11355,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11348,"src":"2628:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":11356,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11306,"src":"2635:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2628:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2614:25:12"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11359,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11354,"src":"2657:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2664:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2657:8:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11364,"nodeType":"IfStatement","src":"2653:24:12","trueBody":{"expression":{"id":11362,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2674:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11287,"id":11363,"nodeType":"Return","src":"2667:10:12"}},{"expression":{"id":11371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11365,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11286,"src":"2691:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11366,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2700:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11367,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11354,"src":"2706:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2700:9:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2712:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2700:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2691:22:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11372,"nodeType":"ExpressionStatement","src":"2691:22:12"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bound","nameLocation":"1655:6:12","parameters":{"id":11284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11279,"mutability":"mutable","name":"x","nameLocation":"1670:1:12","nodeType":"VariableDeclaration","scope":11407,"src":"1662:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11278,"name":"uint256","nodeType":"ElementaryTypeName","src":"1662:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11281,"mutability":"mutable","name":"min","nameLocation":"1681:3:12","nodeType":"VariableDeclaration","scope":11407,"src":"1673:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11280,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11283,"mutability":"mutable","name":"max","nameLocation":"1694:3:12","nodeType":"VariableDeclaration","scope":11407,"src":"1686:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11282,"name":"uint256","nodeType":"ElementaryTypeName","src":"1686:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1661:37:12"},"returnParameters":{"id":11287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11286,"mutability":"mutable","name":"result","nameLocation":"1738:6:12","nodeType":"VariableDeclaration","scope":11407,"src":"1730:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11285,"name":"uint256","nodeType":"ElementaryTypeName","src":"1730:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1729:16:12"},"scope":12014,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11432,"nodeType":"FunctionDefinition","src":"2915:199:12","nodes":[],"body":{"id":11431,"nodeType":"Block","src":"3014:100:12","nodes":[],"statements":[{"expression":{"id":11424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11418,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11416,"src":"3024:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11420,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11409,"src":"3040:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11421,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11411,"src":"3043:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11422,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11413,"src":"3048:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11419,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11407,11554],"referencedDeclaration":11407,"src":"3033:6:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":11423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3033:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3024:28:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11425,"nodeType":"ExpressionStatement","src":"3024:28:12"},{"expression":{"arguments":[{"hexValue":"426f756e6420726573756c74","id":11427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3084:14:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},"value":"Bound result"},{"id":11428,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11416,"src":"3100:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11426,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11979,11996,12013],"referencedDeclaration":11996,"src":"3062:21:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) pure"}},"id":11429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3062:45:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11430,"nodeType":"ExpressionStatement","src":"3062:45:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bound","nameLocation":"2924:5:12","parameters":{"id":11414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11409,"mutability":"mutable","name":"x","nameLocation":"2938:1:12","nodeType":"VariableDeclaration","scope":11432,"src":"2930:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11408,"name":"uint256","nodeType":"ElementaryTypeName","src":"2930:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11411,"mutability":"mutable","name":"min","nameLocation":"2949:3:12","nodeType":"VariableDeclaration","scope":11432,"src":"2941:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11410,"name":"uint256","nodeType":"ElementaryTypeName","src":"2941:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11413,"mutability":"mutable","name":"max","nameLocation":"2962:3:12","nodeType":"VariableDeclaration","scope":11432,"src":"2954:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11412,"name":"uint256","nodeType":"ElementaryTypeName","src":"2954:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2929:37:12"},"returnParameters":{"id":11417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11416,"mutability":"mutable","name":"result","nameLocation":"3006:6:12","nodeType":"VariableDeclaration","scope":11432,"src":"2998:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11415,"name":"uint256","nodeType":"ElementaryTypeName","src":"2998:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2997:16:12"},"scope":12014,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11554,"nodeType":"FunctionDefinition","src":"3120:1145:12","nodes":[],"body":{"id":11553,"nodeType":"Block","src":"3216:1049:12","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11444,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11436,"src":"3234:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11445,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11438,"src":"3241:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3234:10:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320626f756e6428696e743235362c696e743235362c696e74323536293a204d6178206973206c657373207468616e206d696e2e","id":11447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3246:61:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_0fd736be0f0596d130ab62399a2ecc4855db1de6a3b01be590df45aa0de73247","typeString":"literal_string \"StdUtils bound(int256,int256,int256): Max is less than min.\""},"value":"StdUtils bound(int256,int256,int256): Max is less than min."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0fd736be0f0596d130ab62399a2ecc4855db1de6a3b01be590df45aa0de73247","typeString":"literal_string \"StdUtils bound(int256,int256,int256): Max is less than min.\""}],"id":11443,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3226:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3226:82:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11449,"nodeType":"ExpressionStatement","src":"3226:82:12"},{"assignments":[11451],"declarations":[{"constant":false,"id":11451,"mutability":"mutable","name":"_x","nameLocation":"3744:2:12","nodeType":"VariableDeclaration","scope":11553,"src":"3736:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11450,"name":"uint256","nodeType":"ElementaryTypeName","src":"3736:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11473,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11452,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11434,"src":"3749:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":11453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3753:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3749:5:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11467,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11434,"src":"3803:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3795:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11465,"name":"uint256","nodeType":"ElementaryTypeName","src":"3795:7:12","typeDescriptions":{}}},"id":11468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3795:10:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11469,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11268,"src":"3808:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3795:27:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11471,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3794:29:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3749:74:12","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11455,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11268,"src":"3758:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3775:11:12","subExpression":{"arguments":[{"id":11458,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11434,"src":"3784:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3776:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11456,"name":"uint256","nodeType":"ElementaryTypeName","src":"3776:7:12","typeDescriptions":{}}},"id":11459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3776:10:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3758:28:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3789:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3758:32:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11464,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3757:34:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3736:87:12"},{"assignments":[11475],"declarations":[{"constant":false,"id":11475,"mutability":"mutable","name":"_min","nameLocation":"3841:4:12","nodeType":"VariableDeclaration","scope":11553,"src":"3833:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11474,"name":"uint256","nodeType":"ElementaryTypeName","src":"3833:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11497,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11476,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11436,"src":"3848:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":11477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3854:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3848:7:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11491,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11436,"src":"3906:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3898:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11489,"name":"uint256","nodeType":"ElementaryTypeName","src":"3898:7:12","typeDescriptions":{}}},"id":11492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3898:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11493,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11268,"src":"3913:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3898:29:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11495,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3897:31:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3848:80:12","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11479,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11268,"src":"3859:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3876:13:12","subExpression":{"arguments":[{"id":11482,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11436,"src":"3885:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3877:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11480,"name":"uint256","nodeType":"ElementaryTypeName","src":"3877:7:12","typeDescriptions":{}}},"id":11483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3877:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3859:30:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3892:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3859:34:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11488,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3858:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3833:95:12"},{"assignments":[11499],"declarations":[{"constant":false,"id":11499,"mutability":"mutable","name":"_max","nameLocation":"3946:4:12","nodeType":"VariableDeclaration","scope":11553,"src":"3938:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11498,"name":"uint256","nodeType":"ElementaryTypeName","src":"3938:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11521,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11500,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11438,"src":"3953:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":11501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3959:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3953:7:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11515,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11438,"src":"4011:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4003:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11513,"name":"uint256","nodeType":"ElementaryTypeName","src":"4003:7:12","typeDescriptions":{}}},"id":11516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4003:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11517,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11268,"src":"4018:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4003:29:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11519,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4002:31:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3953:80:12","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11503,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11268,"src":"3964:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3981:13:12","subExpression":{"arguments":[{"id":11506,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11438,"src":"3990:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3982:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11504,"name":"uint256","nodeType":"ElementaryTypeName","src":"3982:7:12","typeDescriptions":{}}},"id":11507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3964:30:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3997:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3964:34:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11512,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3963:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3938:95:12"},{"assignments":[11523],"declarations":[{"constant":false,"id":11523,"mutability":"mutable","name":"y","nameLocation":"4052:1:12","nodeType":"VariableDeclaration","scope":11553,"src":"4044:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11522,"name":"uint256","nodeType":"ElementaryTypeName","src":"4044:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11529,"initialValue":{"arguments":[{"id":11525,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11451,"src":"4063:2:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11526,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11475,"src":"4067:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11527,"name":"_max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11499,"src":"4073:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11524,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11407,11554],"referencedDeclaration":11407,"src":"4056:6:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":11528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4056:22:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4044:34:12"},{"expression":{"id":11551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11530,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11441,"src":"4166:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11531,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11523,"src":"4175:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11532,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11268,"src":"4179:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4175:18:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11546,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11523,"src":"4239:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11547,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11268,"src":"4243:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4239:18:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4232:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":11544,"name":"int256","nodeType":"ElementaryTypeName","src":"4232:6:12","typeDescriptions":{}}},"id":11549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4232:26:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":11550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4175:83:12","trueExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"4203:21:12","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11536,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11268,"src":"4205:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11537,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11523,"src":"4222:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4205:18:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11539,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4204:20:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4227:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4203:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4196:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":11534,"name":"int256","nodeType":"ElementaryTypeName","src":"4196:6:12","typeDescriptions":{}}},"id":11543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4196:33:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4166:92:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":11552,"nodeType":"ExpressionStatement","src":"4166:92:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bound","nameLocation":"3129:6:12","parameters":{"id":11439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11434,"mutability":"mutable","name":"x","nameLocation":"3143:1:12","nodeType":"VariableDeclaration","scope":11554,"src":"3136:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11433,"name":"int256","nodeType":"ElementaryTypeName","src":"3136:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11436,"mutability":"mutable","name":"min","nameLocation":"3153:3:12","nodeType":"VariableDeclaration","scope":11554,"src":"3146:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11435,"name":"int256","nodeType":"ElementaryTypeName","src":"3146:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11438,"mutability":"mutable","name":"max","nameLocation":"3165:3:12","nodeType":"VariableDeclaration","scope":11554,"src":"3158:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11437,"name":"int256","nodeType":"ElementaryTypeName","src":"3158:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3135:34:12"},"returnParameters":{"id":11442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11441,"mutability":"mutable","name":"result","nameLocation":"3208:6:12","nodeType":"VariableDeclaration","scope":11554,"src":"3201:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11440,"name":"int256","nodeType":"ElementaryTypeName","src":"3201:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3200:15:12"},"scope":12014,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11582,"nodeType":"FunctionDefinition","src":"4271:208:12","nodes":[],"body":{"id":11581,"nodeType":"Block","src":"4366:113:12","nodes":[],"statements":[{"expression":{"id":11571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11565,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11563,"src":"4376:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11567,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11556,"src":"4392:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":11568,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11558,"src":"4395:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":11569,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11560,"src":"4400:3:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11566,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11407,11554],"referencedDeclaration":11554,"src":"4385:6:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256,int256) pure returns (int256)"}},"id":11570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4376:28:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":11572,"nodeType":"ExpressionStatement","src":"4376:28:12"},{"expression":{"arguments":[{"hexValue":"426f756e6420726573756c74","id":11574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4436:14:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},"value":"Bound result"},{"arguments":[{"id":11577,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11563,"src":"4464:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":11575,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11262,"src":"4452:2:12","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15270","typeString":"contract VmSafe"}},"id":11576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4455:8:12","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13621,"src":"4452:11:12","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":11578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4452:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11573,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11979,11996,12013],"referencedDeclaration":12013,"src":"4414:21:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) pure"}},"id":11579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4414:58:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11580,"nodeType":"ExpressionStatement","src":"4414:58:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bound","nameLocation":"4280:5:12","parameters":{"id":11561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11556,"mutability":"mutable","name":"x","nameLocation":"4293:1:12","nodeType":"VariableDeclaration","scope":11582,"src":"4286:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11555,"name":"int256","nodeType":"ElementaryTypeName","src":"4286:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11558,"mutability":"mutable","name":"min","nameLocation":"4303:3:12","nodeType":"VariableDeclaration","scope":11582,"src":"4296:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11557,"name":"int256","nodeType":"ElementaryTypeName","src":"4296:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11560,"mutability":"mutable","name":"max","nameLocation":"4315:3:12","nodeType":"VariableDeclaration","scope":11582,"src":"4308:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11559,"name":"int256","nodeType":"ElementaryTypeName","src":"4308:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4285:34:12"},"returnParameters":{"id":11564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11563,"mutability":"mutable","name":"result","nameLocation":"4358:6:12","nodeType":"VariableDeclaration","scope":11582,"src":"4351:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11562,"name":"int256","nodeType":"ElementaryTypeName","src":"4351:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4350:15:12"},"scope":12014,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11600,"nodeType":"FunctionDefinition","src":"4485:160:12","nodes":[],"body":{"id":11599,"nodeType":"Block","src":"4577:68:12","nodes":[],"statements":[{"expression":{"id":11597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11589,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11587,"src":"4587:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11591,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11584,"src":"4603:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":11592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4615:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":11593,"name":"SECP256K1_ORDER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11271,"src":"4618:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4636:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4618:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11590,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11407,11554],"referencedDeclaration":11407,"src":"4596:6:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":11596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4596:42:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4587:51:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11598,"nodeType":"ExpressionStatement","src":"4587:51:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"boundPrivateKey","nameLocation":"4494:15:12","parameters":{"id":11585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11584,"mutability":"mutable","name":"privateKey","nameLocation":"4518:10:12","nodeType":"VariableDeclaration","scope":11600,"src":"4510:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11583,"name":"uint256","nodeType":"ElementaryTypeName","src":"4510:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4509:20:12"},"returnParameters":{"id":11588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11587,"mutability":"mutable","name":"result","nameLocation":"4569:6:12","nodeType":"VariableDeclaration","scope":11600,"src":"4561:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11586,"name":"uint256","nodeType":"ElementaryTypeName","src":"4561:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4560:16:12"},"scope":12014,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11634,"nodeType":"FunctionDefinition","src":"4651:259:12","nodes":[],"body":{"id":11633,"nodeType":"Block","src":"4728:182:12","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11608,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"4746:1:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4748:6:12","memberName":"length","nodeType":"MemberAccess","src":"4746:8:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":11610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4758:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4746:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c73206279746573546f55696e74286279746573293a204279746573206c656e67746820657863656564732033322e","id":11612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4762:55:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_15bc16f8ce72c26d4fbf91f28e31f7cbe900e6386b04cf90f353bff0f5b2da88","typeString":"literal_string \"StdUtils bytesToUint(bytes): Bytes length exceeds 32.\""},"value":"StdUtils bytesToUint(bytes): Bytes length exceeds 32."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_15bc16f8ce72c26d4fbf91f28e31f7cbe900e6386b04cf90f353bff0f5b2da88","typeString":"literal_string \"StdUtils bytesToUint(bytes): Bytes length exceeds 32.\""}],"id":11607,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4738:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4738:80:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11614,"nodeType":"ExpressionStatement","src":"4738:80:12"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":11621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4873:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":11622,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"4878:1:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4880:6:12","memberName":"length","nodeType":"MemberAccess","src":"4878:8:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4873:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4863:9:12","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":11619,"name":"bytes","nodeType":"ElementaryTypeName","src":"4867:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":11625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4863:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":11626,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"4889:1:12","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":11617,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4846:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4850:12:12","memberName":"encodePacked","nodeType":"MemberAccess","src":"4846:16:12","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4846:45:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":11629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4894:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11628,"name":"uint256","nodeType":"ElementaryTypeName","src":"4894:7:12","typeDescriptions":{}}}],"id":11630,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4893:9:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":11615,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4835:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4839:6:12","memberName":"decode","nodeType":"MemberAccess","src":"4835:10:12","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":11631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4835:68:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11606,"id":11632,"nodeType":"Return","src":"4828:75:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bytesToUint","nameLocation":"4660:11:12","parameters":{"id":11603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11602,"mutability":"mutable","name":"b","nameLocation":"4685:1:12","nodeType":"VariableDeclaration","scope":11634,"src":"4672:14:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11601,"name":"bytes","nodeType":"ElementaryTypeName","src":"4672:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4671:16:12"},"returnParameters":{"id":11606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11605,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11634,"src":"4719:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11604,"name":"uint256","nodeType":"ElementaryTypeName","src":"4719:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4718:9:12"},"scope":12014,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11655,"nodeType":"FunctionDefinition","src":"5144:281:12","nodes":[],"body":{"id":11654,"nodeType":"Block","src":"5247:178:12","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d707574654372656174654164647265737320697320646570726563617465642e20506c656173652075736520766d2e636f6d707574654372656174654164647265737320696e73746561642e","id":11645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5279:81:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_7269602979e7efe0cf2435fd830893923e4ac6d12c1b6834ce0c3cdb39769052","typeString":"literal_string \"computeCreateAddress is deprecated. Please use vm.computeCreateAddress instead.\""},"value":"computeCreateAddress is deprecated. Please use vm.computeCreateAddress instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7269602979e7efe0cf2435fd830893923e4ac6d12c1b6834ce0c3cdb39769052","typeString":"literal_string \"computeCreateAddress is deprecated. Please use vm.computeCreateAddress instead.\""}],"id":11644,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11979,11996,12013],"referencedDeclaration":11979,"src":"5257:21:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":11646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5257:104:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11647,"nodeType":"ExpressionStatement","src":"5257:104:12"},{"expression":{"arguments":[{"id":11650,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11637,"src":"5402:8:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11651,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11639,"src":"5412:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11648,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11262,"src":"5378:2:12","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15270","typeString":"contract VmSafe"}},"id":11649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5381:20:12","memberName":"computeCreateAddress","nodeType":"MemberAccess","referencedDeclaration":15112,"src":"5378:23:12","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) pure external returns (address)"}},"id":11652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5378:40:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11643,"id":11653,"nodeType":"Return","src":"5371:47:12"}]},"documentation":{"id":11635,"nodeType":"StructuredDocumentation","src":"4916:223:12","text":"@dev Compute the address a contract will be deployed at for a given deployer address and nonce\n @notice adapted from Solmate implementation (https://github.com/Rari-Capital/solmate/blob/main/src/utils/LibRLP.sol)"},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreateAddress","nameLocation":"5153:20:12","parameters":{"id":11640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11637,"mutability":"mutable","name":"deployer","nameLocation":"5182:8:12","nodeType":"VariableDeclaration","scope":11655,"src":"5174:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11636,"name":"address","nodeType":"ElementaryTypeName","src":"5174:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11639,"mutability":"mutable","name":"nonce","nameLocation":"5200:5:12","nodeType":"VariableDeclaration","scope":11655,"src":"5192:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11638,"name":"uint256","nodeType":"ElementaryTypeName","src":"5192:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5173:33:12"},"returnParameters":{"id":11643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11655,"src":"5238:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11641,"name":"address","nodeType":"ElementaryTypeName","src":"5238:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5237:9:12"},"scope":12014,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11678,"nodeType":"FunctionDefinition","src":"5431:355:12","nodes":[],"body":{"id":11677,"nodeType":"Block","src":"5592:194:12","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d70757465437265617465324164647265737320697320646570726563617465642e20506c656173652075736520766d2e636f6d70757465437265617465324164647265737320696e73746561642e","id":11667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5624:83:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""},"value":"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""}],"id":11666,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11979,11996,12013],"referencedDeclaration":11979,"src":"5602:21:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":11668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5602:106:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11669,"nodeType":"ExpressionStatement","src":"5602:106:12"},{"expression":{"arguments":[{"id":11672,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11657,"src":"5750:4:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11673,"name":"initcodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11659,"src":"5756:12:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11674,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11661,"src":"5770:8:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11670,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11262,"src":"5725:2:12","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15270","typeString":"contract VmSafe"}},"id":11671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5728:21:12","memberName":"computeCreate2Address","nodeType":"MemberAccess","referencedDeclaration":15092,"src":"5725:24:12","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure external returns (address)"}},"id":11675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5725:54:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11665,"id":11676,"nodeType":"Return","src":"5718:61:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"5440:21:12","parameters":{"id":11662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11657,"mutability":"mutable","name":"salt","nameLocation":"5470:4:12","nodeType":"VariableDeclaration","scope":11678,"src":"5462:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5462:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11659,"mutability":"mutable","name":"initcodeHash","nameLocation":"5484:12:12","nodeType":"VariableDeclaration","scope":11678,"src":"5476:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11658,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5476:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11661,"mutability":"mutable","name":"deployer","nameLocation":"5506:8:12","nodeType":"VariableDeclaration","scope":11678,"src":"5498:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11660,"name":"address","nodeType":"ElementaryTypeName","src":"5498:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5461:54:12"},"returnParameters":{"id":11665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11678,"src":"5579:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11663,"name":"address","nodeType":"ElementaryTypeName","src":"5579:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5578:9:12"},"scope":12014,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11699,"nodeType":"FunctionDefinition","src":"5895:283:12","nodes":[],"body":{"id":11698,"nodeType":"Block","src":"5994:184:12","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d70757465437265617465324164647265737320697320646570726563617465642e20506c656173652075736520766d2e636f6d70757465437265617465324164647265737320696e73746561642e","id":11689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6026:83:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""},"value":"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""}],"id":11688,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11979,11996,12013],"referencedDeclaration":11979,"src":"6004:21:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":11690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6004:106:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11691,"nodeType":"ExpressionStatement","src":"6004:106:12"},{"expression":{"arguments":[{"id":11694,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11681,"src":"6152:4:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11695,"name":"initCodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11683,"src":"6158:12:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":11692,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11262,"src":"6127:2:12","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15270","typeString":"contract VmSafe"}},"id":11693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6130:21:12","memberName":"computeCreate2Address","nodeType":"MemberAccess","referencedDeclaration":15102,"src":"6127:24:12","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) pure external returns (address)"}},"id":11696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6127:44:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11687,"id":11697,"nodeType":"Return","src":"6120:51:12"}]},"documentation":{"id":11679,"nodeType":"StructuredDocumentation","src":"5792:98:12","text":"@dev returns the address of a contract created with CREATE2 using the default CREATE2 deployer"},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"5904:21:12","parameters":{"id":11684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11681,"mutability":"mutable","name":"salt","nameLocation":"5934:4:12","nodeType":"VariableDeclaration","scope":11699,"src":"5926:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5926:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11683,"mutability":"mutable","name":"initCodeHash","nameLocation":"5948:12:12","nodeType":"VariableDeclaration","scope":11699,"src":"5940:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11682,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5940:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5925:36:12"},"returnParameters":{"id":11687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11699,"src":"5985:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11685,"name":"address","nodeType":"ElementaryTypeName","src":"5985:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5984:9:12"},"scope":12014,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11728,"nodeType":"FunctionDefinition","src":"6240:225:12","nodes":[],"body":{"id":11727,"nodeType":"Block","src":"6377:88:12","nodes":[],"statements":[{"expression":{"id":11717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11712,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11710,"src":"6387:4:12","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33077","typeString":"contract MockERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":11715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6394:13:12","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_MockERC20_$33077_$","typeString":"function () returns (contract MockERC20)"},"typeName":{"id":11714,"nodeType":"UserDefinedTypeName","pathNode":{"id":11713,"name":"MockERC20","nameLocations":["6398:9:12"],"nodeType":"IdentifierPath","referencedDeclaration":33077,"src":"6398:9:12"},"referencedDeclaration":33077,"src":"6398:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33077","typeString":"contract MockERC20"}}},"id":11716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6394:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33077","typeString":"contract MockERC20"}},"src":"6387:22:12","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33077","typeString":"contract MockERC20"}},"id":11718,"nodeType":"ExpressionStatement","src":"6387:22:12"},{"expression":{"arguments":[{"id":11722,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11702,"src":"6435:4:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11723,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11704,"src":"6441:6:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11724,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"6449:8:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":11719,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11710,"src":"6419:4:12","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33077","typeString":"contract MockERC20"}},"id":11721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6424:10:12","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":32645,"src":"6419:15:12","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (string memory,string memory,uint8) external"}},"id":11725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6419:39:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11726,"nodeType":"ExpressionStatement","src":"6419:39:12"}]},"documentation":{"id":11700,"nodeType":"StructuredDocumentation","src":"6184:51:12","text":"@dev returns an initialized mock ERC20 contract"},"implemented":true,"kind":"function","modifiers":[],"name":"deployMockERC20","nameLocation":"6249:15:12","parameters":{"id":11707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11702,"mutability":"mutable","name":"name","nameLocation":"6279:4:12","nodeType":"VariableDeclaration","scope":11728,"src":"6265:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11701,"name":"string","nodeType":"ElementaryTypeName","src":"6265:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11704,"mutability":"mutable","name":"symbol","nameLocation":"6299:6:12","nodeType":"VariableDeclaration","scope":11728,"src":"6285:20:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11703,"name":"string","nodeType":"ElementaryTypeName","src":"6285:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11706,"mutability":"mutable","name":"decimals","nameLocation":"6313:8:12","nodeType":"VariableDeclaration","scope":11728,"src":"6307:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11705,"name":"uint8","nodeType":"ElementaryTypeName","src":"6307:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6264:58:12"},"returnParameters":{"id":11711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11710,"mutability":"mutable","name":"mock","nameLocation":"6367:4:12","nodeType":"VariableDeclaration","scope":11728,"src":"6357:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33077","typeString":"contract MockERC20"},"typeName":{"id":11709,"nodeType":"UserDefinedTypeName","pathNode":{"id":11708,"name":"MockERC20","nameLocations":["6357:9:12"],"nodeType":"IdentifierPath","referencedDeclaration":33077,"src":"6357:9:12"},"referencedDeclaration":33077,"src":"6357:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$33077","typeString":"contract MockERC20"}},"visibility":"internal"}],"src":"6356:16:12"},"scope":12014,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11754,"nodeType":"FunctionDefinition","src":"6528:182:12","nodes":[],"body":{"id":11753,"nodeType":"Block","src":"6631:79:12","nodes":[],"statements":[{"expression":{"id":11744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11739,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11737,"src":"6641:4:12","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33682","typeString":"contract MockERC721"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":11742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6648:14:12","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_MockERC721_$33682_$","typeString":"function () returns (contract MockERC721)"},"typeName":{"id":11741,"nodeType":"UserDefinedTypeName","pathNode":{"id":11740,"name":"MockERC721","nameLocations":["6652:10:12"],"nodeType":"IdentifierPath","referencedDeclaration":33682,"src":"6652:10:12"},"referencedDeclaration":33682,"src":"6652:10:12","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33682","typeString":"contract MockERC721"}}},"id":11743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6648:16:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33682","typeString":"contract MockERC721"}},"src":"6641:23:12","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33682","typeString":"contract MockERC721"}},"id":11745,"nodeType":"ExpressionStatement","src":"6641:23:12"},{"expression":{"arguments":[{"id":11749,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11731,"src":"6690:4:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11750,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11733,"src":"6696:6:12","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":11746,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11737,"src":"6674:4:12","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33682","typeString":"contract MockERC721"}},"id":11748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6679:10:12","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":33240,"src":"6674:15:12","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) external"}},"id":11751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6674:29:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11752,"nodeType":"ExpressionStatement","src":"6674:29:12"}]},"documentation":{"id":11729,"nodeType":"StructuredDocumentation","src":"6471:52:12","text":"@dev returns an initialized mock ERC721 contract"},"implemented":true,"kind":"function","modifiers":[],"name":"deployMockERC721","nameLocation":"6537:16:12","parameters":{"id":11734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11731,"mutability":"mutable","name":"name","nameLocation":"6568:4:12","nodeType":"VariableDeclaration","scope":11754,"src":"6554:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11730,"name":"string","nodeType":"ElementaryTypeName","src":"6554:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11733,"mutability":"mutable","name":"symbol","nameLocation":"6588:6:12","nodeType":"VariableDeclaration","scope":11754,"src":"6574:20:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11732,"name":"string","nodeType":"ElementaryTypeName","src":"6574:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6553:42:12"},"returnParameters":{"id":11738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11737,"mutability":"mutable","name":"mock","nameLocation":"6625:4:12","nodeType":"VariableDeclaration","scope":11754,"src":"6614:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33682","typeString":"contract MockERC721"},"typeName":{"id":11736,"nodeType":"UserDefinedTypeName","pathNode":{"id":11735,"name":"MockERC721","nameLocations":["6614:10:12"],"nodeType":"IdentifierPath","referencedDeclaration":33682,"src":"6614:10:12"},"referencedDeclaration":33682,"src":"6614:10:12","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33682","typeString":"contract MockERC721"}},"visibility":"internal"}],"src":"6613:17:12"},"scope":12014,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11768,"nodeType":"FunctionDefinition","src":"6934:135:12","nodes":[],"body":{"id":11767,"nodeType":"Block","src":"7015:54:12","nodes":[],"statements":[{"expression":{"arguments":[{"id":11763,"name":"creationCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11757,"src":"7045:12:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"","id":11764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7059:2:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":11762,"name":"hashInitCode","nodeType":"Identifier","overloadedDeclarations":[11768,11787],"referencedDeclaration":11787,"src":"7032:12:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory,bytes memory) pure returns (bytes32)"}},"id":11765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7032:30:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11761,"id":11766,"nodeType":"Return","src":"7025:37:12"}]},"documentation":{"id":11755,"nodeType":"StructuredDocumentation","src":"6716:213:12","text":"@dev returns the hash of the init code (creation code + no args) used in CREATE2 with no constructor arguments\n @param creationCode the creation code of a contract C, as returned by type(C).creationCode"},"implemented":true,"kind":"function","modifiers":[],"name":"hashInitCode","nameLocation":"6943:12:12","parameters":{"id":11758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11757,"mutability":"mutable","name":"creationCode","nameLocation":"6969:12:12","nodeType":"VariableDeclaration","scope":11768,"src":"6956:25:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11756,"name":"bytes","nodeType":"ElementaryTypeName","src":"6956:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6955:27:12"},"returnParameters":{"id":11761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11760,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11768,"src":"7006:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7006:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7005:9:12"},"scope":12014,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11787,"nodeType":"FunctionDefinition","src":"7342:171:12","nodes":[],"body":{"id":11786,"nodeType":"Block","src":"7442:71:12","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":11781,"name":"creationCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"7486:12:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":11782,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11773,"src":"7500:4:12","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":11779,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7469:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7473:12:12","memberName":"encodePacked","nodeType":"MemberAccess","src":"7469:16:12","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7469:36:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11778,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7459:9:12","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7459:47:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11777,"id":11785,"nodeType":"Return","src":"7452:54:12"}]},"documentation":{"id":11769,"nodeType":"StructuredDocumentation","src":"7075:262:12","text":"@dev returns the hash of the init code (creation code + ABI-encoded args) used in CREATE2\n @param creationCode the creation code of a contract C, as returned by type(C).creationCode\n @param args the ABI-encoded arguments to the constructor of C"},"implemented":true,"kind":"function","modifiers":[],"name":"hashInitCode","nameLocation":"7351:12:12","parameters":{"id":11774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11771,"mutability":"mutable","name":"creationCode","nameLocation":"7377:12:12","nodeType":"VariableDeclaration","scope":11787,"src":"7364:25:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11770,"name":"bytes","nodeType":"ElementaryTypeName","src":"7364:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":11773,"mutability":"mutable","name":"args","nameLocation":"7404:4:12","nodeType":"VariableDeclaration","scope":11787,"src":"7391:17:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11772,"name":"bytes","nodeType":"ElementaryTypeName","src":"7391:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7363:46:12"},"returnParameters":{"id":11777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11776,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11787,"src":"7433:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11775,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7433:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7432:9:12"},"scope":12014,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11901,"nodeType":"FunctionDefinition","src":"7624:1124:12","nodes":[],"body":{"id":11900,"nodeType":"Block","src":"7774:974:12","nodes":[],"statements":[{"assignments":[11799],"declarations":[{"constant":false,"id":11799,"mutability":"mutable","name":"tokenCodeSize","nameLocation":"7792:13:12","nodeType":"VariableDeclaration","scope":11900,"src":"7784:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11798,"name":"uint256","nodeType":"ElementaryTypeName","src":"7784:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11800,"nodeType":"VariableDeclarationStatement","src":"7784:21:12"},{"AST":{"nativeSrc":"7824:59:12","nodeType":"YulBlock","src":"7824:59:12","statements":[{"nativeSrc":"7838:35:12","nodeType":"YulAssignment","src":"7838:35:12","value":{"arguments":[{"name":"token","nativeSrc":"7867:5:12","nodeType":"YulIdentifier","src":"7867:5:12"}],"functionName":{"name":"extcodesize","nativeSrc":"7855:11:12","nodeType":"YulIdentifier","src":"7855:11:12"},"nativeSrc":"7855:18:12","nodeType":"YulFunctionCall","src":"7855:18:12"},"variableNames":[{"name":"tokenCodeSize","nativeSrc":"7838:13:12","nodeType":"YulIdentifier","src":"7838:13:12"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":11789,"isOffset":false,"isSlot":false,"src":"7867:5:12","valueSize":1},{"declaration":11799,"isOffset":false,"isSlot":false,"src":"7838:13:12","valueSize":1}],"id":11801,"nodeType":"InlineAssembly","src":"7815:68:12"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11803,"name":"tokenCodeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11799,"src":"7900:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":11804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7916:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7900:17:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320676574546f6b656e42616c616e63657328616464726573732c616464726573735b5d293a20546f6b656e2061646472657373206973206e6f74206120636f6e74726163742e","id":11806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7919:80:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1cfd8db054d28c838f90dd4aca17e279a1b93ad4e1fab977a6ceb92cad655fe","typeString":"literal_string \"StdUtils getTokenBalances(address,address[]): Token address is not a contract.\""},"value":"StdUtils getTokenBalances(address,address[]): Token address is not a contract."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e1cfd8db054d28c838f90dd4aca17e279a1b93ad4e1fab977a6ceb92cad655fe","typeString":"literal_string \"StdUtils getTokenBalances(address,address[]): Token address is not a contract.\""}],"id":11802,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7892:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7892:108:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11808,"nodeType":"ExpressionStatement","src":"7892:108:12"},{"assignments":[11810],"declarations":[{"constant":false,"id":11810,"mutability":"mutable","name":"length","nameLocation":"8075:6:12","nodeType":"VariableDeclaration","scope":11900,"src":"8067:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11809,"name":"uint256","nodeType":"ElementaryTypeName","src":"8067:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11813,"initialValue":{"expression":{"id":11811,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11792,"src":"8084:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8094:6:12","memberName":"length","nodeType":"MemberAccess","src":"8084:16:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8067:33:12"},{"assignments":[11819],"declarations":[{"constant":false,"id":11819,"mutability":"mutable","name":"calls","nameLocation":"8136:5:12","nodeType":"VariableDeclaration","scope":11900,"src":"8110:31:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32345_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":11817,"nodeType":"UserDefinedTypeName","pathNode":{"id":11816,"name":"IMulticall3.Call","nameLocations":["8110:11:12","8122:4:12"],"nodeType":"IdentifierPath","referencedDeclaration":32345,"src":"8110:16:12"},"referencedDeclaration":32345,"src":"8110:16:12","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32345_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":11818,"nodeType":"ArrayTypeName","src":"8110:18:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32345_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"id":11826,"initialValue":{"arguments":[{"id":11824,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11810,"src":"8167:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8144:22:12","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Call_$32345_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IMulticall3.Call memory[] memory)"},"typeName":{"baseType":{"id":11821,"nodeType":"UserDefinedTypeName","pathNode":{"id":11820,"name":"IMulticall3.Call","nameLocations":["8148:11:12","8160:4:12"],"nodeType":"IdentifierPath","referencedDeclaration":32345,"src":"8148:16:12"},"referencedDeclaration":32345,"src":"8148:16:12","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32345_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":11822,"nodeType":"ArrayTypeName","src":"8148:18:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32345_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}}},"id":11825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8144:30:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32345_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8110:64:12"},{"body":{"id":11854,"nodeType":"Block","src":"8221:189:12","statements":[{"expression":{"id":11852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11837,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11819,"src":"8293:5:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32345_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}},"id":11839,"indexExpression":{"id":11838,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11828,"src":"8299:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8293:8:12","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32345_memory_ptr","typeString":"struct IMulticall3.Call memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11842,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11789,"src":"8330:5:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30783730613038323331","id":11845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8370:10:12","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"},{"components":[{"baseExpression":{"id":11846,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11792,"src":"8383:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11848,"indexExpression":{"id":11847,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11828,"src":"8393:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8383:12:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":11849,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8382:14:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11843,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8347:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8351:18:12","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"8347:22:12","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":11850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8347:50:12","tryCall":false,"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":11840,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32500,"src":"8304:11:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMulticall3_$32500_$","typeString":"type(contract IMulticall3)"}},"id":11841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8316:4:12","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":32345,"src":"8304:16:12","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Call_$32345_storage_ptr_$","typeString":"type(struct IMulticall3.Call storage pointer)"}},"id":11851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8322:6:12","8337:8:12"],"names":["target","callData"],"nodeType":"FunctionCall","src":"8304:95:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32345_memory_ptr","typeString":"struct IMulticall3.Call memory"}},"src":"8293:106:12","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32345_memory_ptr","typeString":"struct IMulticall3.Call memory"}},"id":11853,"nodeType":"ExpressionStatement","src":"8293:106:12"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11831,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11828,"src":"8204:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11832,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11810,"src":"8208:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8204:10:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11855,"initializationExpression":{"assignments":[11828],"declarations":[{"constant":false,"id":11828,"mutability":"mutable","name":"i","nameLocation":"8197:1:12","nodeType":"VariableDeclaration","scope":11855,"src":"8189:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11827,"name":"uint256","nodeType":"ElementaryTypeName","src":"8189:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11830,"initialValue":{"hexValue":"30","id":11829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8201:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8189:13:12"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":11835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8216:3:12","subExpression":{"id":11834,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11828,"src":"8218:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11836,"nodeType":"ExpressionStatement","src":"8216:3:12"},"nodeType":"ForStatement","src":"8184:226:12"},{"assignments":[null,11860],"declarations":[null,{"constant":false,"id":11860,"mutability":"mutable","name":"returnData","nameLocation":"8474:10:12","nodeType":"VariableDeclaration","scope":11900,"src":"8459:25:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":11858,"name":"bytes","nodeType":"ElementaryTypeName","src":"8459:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":11859,"nodeType":"ArrayTypeName","src":"8459:7:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":11865,"initialValue":{"arguments":[{"id":11863,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11819,"src":"8508:5:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32345_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Call_$32345_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}],"expression":{"id":11861,"name":"multicall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11245,"src":"8488:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32500","typeString":"contract IMulticall3"}},"id":11862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8498:9:12","memberName":"aggregate","nodeType":"MemberAccess","referencedDeclaration":32378,"src":"8488:19:12","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_array$_t_struct$_Call_$32345_memory_ptr_$dyn_memory_ptr_$returns$_t_uint256_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct IMulticall3.Call memory[] memory) payable external returns (uint256,bytes memory[] memory)"}},"id":11864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8488:26:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(uint256,bytes memory[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"8456:58:12"},{"expression":{"id":11872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11866,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11796,"src":"8588:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11870,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11810,"src":"8613:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8599:13:12","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":11867,"name":"uint256","nodeType":"ElementaryTypeName","src":"8603:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11868,"nodeType":"ArrayTypeName","src":"8603:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":11871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8599:21:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"8588:32:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11873,"nodeType":"ExpressionStatement","src":"8588:32:12"},{"body":{"id":11898,"nodeType":"Block","src":"8667:75:12","statements":[{"expression":{"id":11896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11884,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11796,"src":"8681:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11886,"indexExpression":{"id":11885,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11875,"src":"8690:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8681:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":11889,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"8706:10:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":11891,"indexExpression":{"id":11890,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11875,"src":"8717:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8706:13:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":11893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8722:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11892,"name":"uint256","nodeType":"ElementaryTypeName","src":"8722:7:12","typeDescriptions":{}}}],"id":11894,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8721:9:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":11887,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8695:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8699:6:12","memberName":"decode","nodeType":"MemberAccess","src":"8695:10:12","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":11895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8695:36:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8681:50:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11897,"nodeType":"ExpressionStatement","src":"8681:50:12"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11878,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11875,"src":"8650:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11879,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11810,"src":"8654:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8650:10:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11899,"initializationExpression":{"assignments":[11875],"declarations":[{"constant":false,"id":11875,"mutability":"mutable","name":"i","nameLocation":"8643:1:12","nodeType":"VariableDeclaration","scope":11899,"src":"8635:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11874,"name":"uint256","nodeType":"ElementaryTypeName","src":"8635:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11877,"initialValue":{"hexValue":"30","id":11876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8647:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8635:13:12"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":11882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8662:3:12","subExpression":{"id":11881,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11875,"src":"8664:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11883,"nodeType":"ExpressionStatement","src":"8662:3:12"},"nodeType":"ForStatement","src":"8630:112:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTokenBalances","nameLocation":"7633:16:12","parameters":{"id":11793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11789,"mutability":"mutable","name":"token","nameLocation":"7658:5:12","nodeType":"VariableDeclaration","scope":11901,"src":"7650:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11788,"name":"address","nodeType":"ElementaryTypeName","src":"7650:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11792,"mutability":"mutable","name":"addresses","nameLocation":"7682:9:12","nodeType":"VariableDeclaration","scope":11901,"src":"7665:26:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11790,"name":"address","nodeType":"ElementaryTypeName","src":"7665:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11791,"nodeType":"ArrayTypeName","src":"7665:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7649:43:12"},"returnParameters":{"id":11797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11796,"mutability":"mutable","name":"balances","nameLocation":"7760:8:12","nodeType":"VariableDeclaration","scope":11901,"src":"7743:25:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11794,"name":"uint256","nodeType":"ElementaryTypeName","src":"7743:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11795,"nodeType":"ArrayTypeName","src":"7743:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7742:27:12"},"scope":12014,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":11920,"nodeType":"FunctionDefinition","src":"8968:144:12","nodes":[],"body":{"id":11919,"nodeType":"Block","src":"9051:61:12","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":11914,"name":"bytesValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11903,"src":"9092:10:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9084:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11912,"name":"uint256","nodeType":"ElementaryTypeName","src":"9084:7:12","typeDescriptions":{}}},"id":11915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9084:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9076:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11910,"name":"uint160","nodeType":"ElementaryTypeName","src":"9076:7:12","typeDescriptions":{}}},"id":11916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9076:28:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9068:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11908,"name":"address","nodeType":"ElementaryTypeName","src":"9068:7:12","typeDescriptions":{}}},"id":11917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9068:37:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11907,"id":11918,"nodeType":"Return","src":"9061:44:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"addressFromLast20Bytes","nameLocation":"8977:22:12","parameters":{"id":11904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11903,"mutability":"mutable","name":"bytesValue","nameLocation":"9008:10:12","nodeType":"VariableDeclaration","scope":11920,"src":"9000:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9000:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8999:20:12"},"returnParameters":{"id":11907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11906,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11920,"src":"9042:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11905,"name":"address","nodeType":"ElementaryTypeName","src":"9042:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9041:9:12"},"scope":12014,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":11937,"nodeType":"FunctionDefinition","src":"9407:235:12","nodes":[],"body":{"id":11936,"nodeType":"Block","src":"9580:62:12","nodes":[],"statements":[{"AST":{"nativeSrc":"9599:37:12","nodeType":"YulBlock","src":"9599:37:12","statements":[{"nativeSrc":"9613:13:12","nodeType":"YulAssignment","src":"9613:13:12","value":{"name":"fnIn","nativeSrc":"9622:4:12","nodeType":"YulIdentifier","src":"9622:4:12"},"variableNames":[{"name":"fnOut","nativeSrc":"9613:5:12","nodeType":"YulIdentifier","src":"9613:5:12"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":11926,"isOffset":false,"isSlot":false,"src":"9622:4:12","valueSize":1},{"declaration":11933,"isOffset":false,"isSlot":false,"src":"9613:5:12","valueSize":1}],"id":11935,"nodeType":"InlineAssembly","src":"9590:46:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_castLogPayloadViewToPure","nameLocation":"9416:25:12","parameters":{"id":11927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11926,"mutability":"mutable","name":"fnIn","nameLocation":"9479:4:12","nodeType":"VariableDeclaration","scope":11937,"src":"9442:41:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"typeName":{"id":11925,"nodeType":"FunctionTypeName","parameterTypes":{"id":11923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11922,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11925,"src":"9451:12:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11921,"name":"bytes","nodeType":"ElementaryTypeName","src":"9451:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9450:14:12"},"returnParameterTypes":{"id":11924,"nodeType":"ParameterList","parameters":[],"src":"9479:0:12"},"src":"9442:41:12","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"visibility":"internal"},"visibility":"internal"}],"src":"9441:43:12"},"returnParameters":{"id":11934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11933,"mutability":"mutable","name":"fnOut","nameLocation":"9569:5:12","nodeType":"VariableDeclaration","scope":11937,"src":"9532:42:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"typeName":{"id":11932,"nodeType":"FunctionTypeName","parameterTypes":{"id":11930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11929,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11932,"src":"9541:12:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11928,"name":"bytes","nodeType":"ElementaryTypeName","src":"9541:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9540:14:12"},"returnParameterTypes":{"id":11931,"nodeType":"ParameterList","parameters":[],"src":"9569:0:12"},"src":"9532:42:12","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"visibility":"internal"},"visibility":"internal"}],"src":"9531:44:12"},"scope":12014,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11949,"nodeType":"FunctionDefinition","src":"9648:133:12","nodes":[],"body":{"id":11948,"nodeType":"Block","src":"9709:72:12","nodes":[],"statements":[{"expression":{"arguments":[{"id":11945,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11939,"src":"9766:7:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"id":11943,"name":"_sendLogPayloadView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11965,"src":"9745:19:12","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":11942,"name":"_castLogPayloadViewToPure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11937,"src":"9719:25:12","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":11944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9719:46:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9719:55:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11947,"nodeType":"ExpressionStatement","src":"9719:55:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"9657:15:12","parameters":{"id":11940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11939,"mutability":"mutable","name":"payload","nameLocation":"9686:7:12","nodeType":"VariableDeclaration","scope":11949,"src":"9673:20:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11938,"name":"bytes","nodeType":"ElementaryTypeName","src":"9673:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9672:22:12"},"returnParameters":{"id":11941,"nodeType":"ParameterList","parameters":[],"src":"9709:0:12"},"scope":12014,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11965,"nodeType":"FunctionDefinition","src":"9787:381:12","nodes":[],"body":{"id":11964,"nodeType":"Block","src":"9851:317:12","nodes":[],"statements":[{"assignments":[11955],"declarations":[{"constant":false,"id":11955,"mutability":"mutable","name":"payloadLength","nameLocation":"9869:13:12","nodeType":"VariableDeclaration","scope":11964,"src":"9861:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11954,"name":"uint256","nodeType":"ElementaryTypeName","src":"9861:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11958,"initialValue":{"expression":{"id":11956,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11951,"src":"9885:7:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9893:6:12","memberName":"length","nodeType":"MemberAccess","src":"9885:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9861:38:12"},{"assignments":[11960],"declarations":[{"constant":false,"id":11960,"mutability":"mutable","name":"consoleAddress","nameLocation":"9917:14:12","nodeType":"VariableDeclaration","scope":11964,"src":"9909:22:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11959,"name":"address","nodeType":"ElementaryTypeName","src":"9909:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11962,"initialValue":{"id":11961,"name":"CONSOLE2_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11265,"src":"9934:16:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9909:41:12"},{"AST":{"nativeSrc":"10012:150:12","nodeType":"YulBlock","src":"10012:150:12","statements":[{"nativeSrc":"10026:36:12","nodeType":"YulVariableDeclaration","src":"10026:36:12","value":{"arguments":[{"name":"payload","nativeSrc":"10050:7:12","nodeType":"YulIdentifier","src":"10050:7:12"},{"kind":"number","nativeSrc":"10059:2:12","nodeType":"YulLiteral","src":"10059:2:12","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10046:3:12","nodeType":"YulIdentifier","src":"10046:3:12"},"nativeSrc":"10046:16:12","nodeType":"YulFunctionCall","src":"10046:16:12"},"variables":[{"name":"payloadStart","nativeSrc":"10030:12:12","nodeType":"YulTypedName","src":"10030:12:12","type":""}]},{"nativeSrc":"10075:77:12","nodeType":"YulVariableDeclaration","src":"10075:77:12","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"10095:3:12","nodeType":"YulIdentifier","src":"10095:3:12"},"nativeSrc":"10095:5:12","nodeType":"YulFunctionCall","src":"10095:5:12"},{"name":"consoleAddress","nativeSrc":"10102:14:12","nodeType":"YulIdentifier","src":"10102:14:12"},{"name":"payloadStart","nativeSrc":"10118:12:12","nodeType":"YulIdentifier","src":"10118:12:12"},{"name":"payloadLength","nativeSrc":"10132:13:12","nodeType":"YulIdentifier","src":"10132:13:12"},{"kind":"number","nativeSrc":"10147:1:12","nodeType":"YulLiteral","src":"10147:1:12","type":"","value":"0"},{"kind":"number","nativeSrc":"10150:1:12","nodeType":"YulLiteral","src":"10150:1:12","type":"","value":"0"}],"functionName":{"name":"staticcall","nativeSrc":"10084:10:12","nodeType":"YulIdentifier","src":"10084:10:12"},"nativeSrc":"10084:68:12","nodeType":"YulFunctionCall","src":"10084:68:12"},"variables":[{"name":"r","nativeSrc":"10079:1:12","nodeType":"YulTypedName","src":"10079:1:12","type":""}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11960,"isOffset":false,"isSlot":false,"src":"10102:14:12","valueSize":1},{"declaration":11951,"isOffset":false,"isSlot":false,"src":"10050:7:12","valueSize":1},{"declaration":11955,"isOffset":false,"isSlot":false,"src":"10132:13:12","valueSize":1}],"id":11963,"nodeType":"InlineAssembly","src":"10003:159:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayloadView","nameLocation":"9796:19:12","parameters":{"id":11952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11951,"mutability":"mutable","name":"payload","nameLocation":"9829:7:12","nodeType":"VariableDeclaration","scope":11965,"src":"9816:20:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11950,"name":"bytes","nodeType":"ElementaryTypeName","src":"9816:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9815:22:12"},"returnParameters":{"id":11953,"nodeType":"ParameterList","parameters":[],"src":"9851:0:12"},"scope":12014,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":11979,"nodeType":"FunctionDefinition","src":"10174:138:12","nodes":[],"body":{"id":11978,"nodeType":"Block","src":"10236:76:12","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":11973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10286:13:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":11974,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11967,"src":"10301:2:12","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":11971,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10262:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10266:19:12","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10262:23:12","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10262:42:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11970,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11949,"src":"10246:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10246:59:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11977,"nodeType":"ExpressionStatement","src":"10246:59:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdUtils","nameLocation":"10183:21:12","parameters":{"id":11968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11967,"mutability":"mutable","name":"p0","nameLocation":"10219:2:12","nodeType":"VariableDeclaration","scope":11979,"src":"10205:16:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11966,"name":"string","nodeType":"ElementaryTypeName","src":"10205:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10204:18:12"},"returnParameters":{"id":11969,"nodeType":"ParameterList","parameters":[],"src":"10236:0:12"},"scope":12014,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":11996,"nodeType":"FunctionDefinition","src":"10318:162:12","nodes":[],"body":{"id":11995,"nodeType":"Block","src":"10392:88:12","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7432353629","id":11989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10442:21:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},"value":"log(string,uint256)"},{"id":11990,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11981,"src":"10465:2:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11991,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11983,"src":"10469:2:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11987,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10418:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10422:19:12","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10418:23:12","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10418:54:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11986,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11949,"src":"10402:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10402:71:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11994,"nodeType":"ExpressionStatement","src":"10402:71:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdUtils","nameLocation":"10327:21:12","parameters":{"id":11984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11981,"mutability":"mutable","name":"p0","nameLocation":"10363:2:12","nodeType":"VariableDeclaration","scope":11996,"src":"10349:16:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11980,"name":"string","nodeType":"ElementaryTypeName","src":"10349:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11983,"mutability":"mutable","name":"p1","nameLocation":"10375:2:12","nodeType":"VariableDeclaration","scope":11996,"src":"10367:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11982,"name":"uint256","nodeType":"ElementaryTypeName","src":"10367:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10348:30:12"},"returnParameters":{"id":11985,"nodeType":"ParameterList","parameters":[],"src":"10392:0:12"},"scope":12014,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":12013,"nodeType":"FunctionDefinition","src":"10486:167:12","nodes":[],"body":{"id":12012,"nodeType":"Block","src":"10566:87:12","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":12006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10616:20:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":12007,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11998,"src":"10638:2:12","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12008,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12000,"src":"10642:2:12","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":12004,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10592:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10596:19:12","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10592:23:12","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10592:53:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12003,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11949,"src":"10576:15:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10576:70:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12011,"nodeType":"ExpressionStatement","src":"10576:70:12"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdUtils","nameLocation":"10495:21:12","parameters":{"id":12001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11998,"mutability":"mutable","name":"p0","nameLocation":"10531:2:12","nodeType":"VariableDeclaration","scope":12013,"src":"10517:16:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11997,"name":"string","nodeType":"ElementaryTypeName","src":"10517:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12000,"mutability":"mutable","name":"p1","nameLocation":"10549:2:12","nodeType":"VariableDeclaration","scope":12013,"src":"10535:16:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11999,"name":"string","nodeType":"ElementaryTypeName","src":"10535:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10516:36:12"},"returnParameters":{"id":12002,"nodeType":"ParameterList","parameters":[],"src":"10566:0:12"},"scope":12014,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"StdUtils","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[12014],"name":"StdUtils","nameLocation":"310:8:12","scope":12015,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":12}