{"abi":[],"bytecode":{"object":"0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000819000a","sourceMap":"385:5289:32:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;385:5289:32;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000819000a","sourceMap":"385:5289:32:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"RLPWriter is a library for encoding Solidity types to RLP bytes. Adapted from Bakaoh's         RLPEncode library (https://github.com/bakaoh/solidity-rlp-encode) with minor         modifications to improve legibility.\",\"custom:attribution\":\"https://github.com/bakaoh/solidity-rlp-encode\",\"kind\":\"dev\",\"methods\":{},\"title\":\"RLPWriter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/rlp/RLPWriter.sol\":\"RLPWriter\"},\"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\":{\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"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":{"src/libraries/rlp/RLPWriter.sol":"RLPWriter"},"evmVersion":"cancun","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"RLPWriter is a library for encoding Solidity types to RLP bytes. Adapted from Bakaoh's         RLPEncode library (https://github.com/bakaoh/solidity-rlp-encode) with minor         modifications to improve legibility.","title":"RLPWriter"},"ast":{"absolutePath":"src/libraries/rlp/RLPWriter.sol","id":49257,"exportedSymbols":{"RLPWriter":[49256]},"nodeType":"SourceUnit","src":"32:5643:32","nodes":[{"id":48759,"nodeType":"PragmaDirective","src":"32:23:32","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49256,"nodeType":"ContractDefinition","src":"385:5289:32","nodes":[{"id":48801,"nodeType":"FunctionDefinition","src":"552:265:32","nodes":[],"body":{"id":48800,"nodeType":"Block","src":"632:185:32","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48768,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"646:3:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"650:6:32","memberName":"length","nodeType":"MemberAccess","src":"646:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":48770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"660:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"646:15:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":48779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":48774,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"671:3:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48776,"indexExpression":{"hexValue":"30","id":48775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"675:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"671:6:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":48773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"665:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":48772,"name":"uint8","nodeType":"ElementaryTypeName","src":"665:5:32","typeDescriptions":{}}},"id":48777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"665:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"313238","id":48778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"681:3:32","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"665:19:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"646:38:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48798,"nodeType":"Block","src":"727:84:32","statements":[{"expression":{"id":48796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48786,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48766,"src":"741:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":48790,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"778:3:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"782:6:32","memberName":"length","nodeType":"MemberAccess","src":"778:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313238","id":48792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"790:3:32","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"}],"id":48789,"name":"_writeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49039,"src":"765:12:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (bytes memory)"}},"id":48793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"765:29:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48794,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"796:3:32","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":48787,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"748:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"752:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"748:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":48795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"748:52:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"741:59:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48797,"nodeType":"ExpressionStatement","src":"741:59:32"}]},"id":48799,"nodeType":"IfStatement","src":"642:169:32","trueBody":{"id":48785,"nodeType":"Block","src":"686:35:32","statements":[{"expression":{"id":48783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48781,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48766,"src":"700:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48782,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"707:3:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"700:10:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48784,"nodeType":"ExpressionStatement","src":"700:10:32"}]}}]},"documentation":{"id":48761,"nodeType":"StructuredDocumentation","src":"409:138:32","text":"@notice RLP encodes a byte string.\n @param _in The byte string to encode.\n @return out_ The RLP encoded string in bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"writeBytes","nameLocation":"561:10:32","parameters":{"id":48764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48763,"mutability":"mutable","name":"_in","nameLocation":"585:3:32","nodeType":"VariableDeclaration","scope":48801,"src":"572:16:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48762,"name":"bytes","nodeType":"ElementaryTypeName","src":"572:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"571:18:32"},"returnParameters":{"id":48767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48766,"mutability":"mutable","name":"out_","nameLocation":"626:4:32","nodeType":"VariableDeclaration","scope":48801,"src":"613:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48765,"name":"bytes","nodeType":"ElementaryTypeName","src":"613:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"612:19:32"},"scope":49256,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48829,"nodeType":"FunctionDefinition","src":"1011:194:32","nodes":[],"body":{"id":48828,"nodeType":"Block","src":"1093:112:32","nodes":[],"statements":[{"expression":{"id":48814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48810,"name":"list_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"1103:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48812,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48805,"src":"1120:3:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"id":48811,"name":"_flatten","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49255,"src":"1111:8:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory[] memory) pure returns (bytes memory)"}},"id":48813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1111:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1103:21:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48815,"nodeType":"ExpressionStatement","src":"1103:21:32"},{"expression":{"id":48826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48816,"name":"list_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"1134:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":48820,"name":"list_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"1172:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1178:6:32","memberName":"length","nodeType":"MemberAccess","src":"1172:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313932","id":48822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1186:3:32","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"}],"id":48819,"name":"_writeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49039,"src":"1159:12:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (bytes memory)"}},"id":48823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1159:31:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48824,"name":"list_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"1192:5:32","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":48817,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1142:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1146:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"1142:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":48825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1142:56:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1134:64:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48827,"nodeType":"ExpressionStatement","src":"1134:64:32"}]},"documentation":{"id":48802,"nodeType":"StructuredDocumentation","src":"823:183:32","text":"@notice RLP encodes a list of RLP encoded byte byte strings.\n @param _in The list of RLP encoded byte strings.\n @return list_ The RLP encoded list of items in bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"writeList","nameLocation":"1020:9:32","parameters":{"id":48806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48805,"mutability":"mutable","name":"_in","nameLocation":"1045:3:32","nodeType":"VariableDeclaration","scope":48829,"src":"1030:18:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":48803,"name":"bytes","nodeType":"ElementaryTypeName","src":"1030:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":48804,"nodeType":"ArrayTypeName","src":"1030:7:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1029:20:32"},"returnParameters":{"id":48809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48808,"mutability":"mutable","name":"list_","nameLocation":"1086:5:32","nodeType":"VariableDeclaration","scope":48829,"src":"1073:18:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48807,"name":"bytes","nodeType":"ElementaryTypeName","src":"1073:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1072:20:32"},"scope":49256,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48847,"nodeType":"FunctionDefinition","src":"1344:128:32","nodes":[],"body":{"id":48846,"nodeType":"Block","src":"1426:46:32","nodes":[],"statements":[{"expression":{"id":48844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48837,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48835,"src":"1436:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":48841,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48832,"src":"1460:3:32","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1454:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":48839,"name":"bytes","nodeType":"ElementaryTypeName","src":"1454:5:32","typeDescriptions":{}}},"id":48842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1454:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48838,"name":"writeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48801,"src":"1443:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes memory)"}},"id":48843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1443:22:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1436:29:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48845,"nodeType":"ExpressionStatement","src":"1436:29:32"}]},"documentation":{"id":48830,"nodeType":"StructuredDocumentation","src":"1211:128:32","text":"@notice RLP encodes a string.\n @param _in The string to encode.\n @return out_ The RLP encoded string in bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"writeString","nameLocation":"1353:11:32","parameters":{"id":48833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48832,"mutability":"mutable","name":"_in","nameLocation":"1379:3:32","nodeType":"VariableDeclaration","scope":48847,"src":"1365:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48831,"name":"string","nodeType":"ElementaryTypeName","src":"1365:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1364:19:32"},"returnParameters":{"id":48836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48835,"mutability":"mutable","name":"out_","nameLocation":"1420:4:32","nodeType":"VariableDeclaration","scope":48847,"src":"1407:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48834,"name":"bytes","nodeType":"ElementaryTypeName","src":"1407:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1406:19:32"},"scope":49256,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48865,"nodeType":"FunctionDefinition","src":"1615:134:32","nodes":[],"body":{"id":48864,"nodeType":"Block","src":"1692:57:32","nodes":[],"statements":[{"expression":{"id":48862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48855,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48853,"src":"1702:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":48859,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48850,"src":"1737:3:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48857,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1720:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1724:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"1720:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":48860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1720:21:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48856,"name":"writeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48801,"src":"1709:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes memory)"}},"id":48861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1709:33:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1702:40:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48863,"nodeType":"ExpressionStatement","src":"1702:40:32"}]},"documentation":{"id":48848,"nodeType":"StructuredDocumentation","src":"1478:132:32","text":"@notice RLP encodes an address.\n @param _in The address to encode.\n @return out_ The RLP encoded address in bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"writeAddress","nameLocation":"1624:12:32","parameters":{"id":48851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48850,"mutability":"mutable","name":"_in","nameLocation":"1645:3:32","nodeType":"VariableDeclaration","scope":48865,"src":"1637:11:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48849,"name":"address","nodeType":"ElementaryTypeName","src":"1637:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1636:13:32"},"returnParameters":{"id":48854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48853,"mutability":"mutable","name":"out_","nameLocation":"1686:4:32","nodeType":"VariableDeclaration","scope":48865,"src":"1673:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48852,"name":"bytes","nodeType":"ElementaryTypeName","src":"1673:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1672:19:32"},"scope":49256,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48882,"nodeType":"FunctionDefinition","src":"1888:124:32","nodes":[],"body":{"id":48881,"nodeType":"Block","src":"1962:50:32","nodes":[],"statements":[{"expression":{"id":48879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48873,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48871,"src":"1972:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":48876,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48868,"src":"2000:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48875,"name":"_toBinary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49106,"src":"1990:9:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":48877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1990:14:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48874,"name":"writeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48801,"src":"1979:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes memory)"}},"id":48878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1979:26:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1972:33:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48880,"nodeType":"ExpressionStatement","src":"1972:33:32"}]},"documentation":{"id":48866,"nodeType":"StructuredDocumentation","src":"1755:128:32","text":"@notice RLP encodes a uint.\n @param _in The uint256 to encode.\n @return out_ The RLP encoded uint256 in bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"writeUint","nameLocation":"1897:9:32","parameters":{"id":48869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48868,"mutability":"mutable","name":"_in","nameLocation":"1915:3:32","nodeType":"VariableDeclaration","scope":48882,"src":"1907:11:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48867,"name":"uint256","nodeType":"ElementaryTypeName","src":"1907:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1906:13:32"},"returnParameters":{"id":48872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48871,"mutability":"mutable","name":"out_","nameLocation":"1956:4:32","nodeType":"VariableDeclaration","scope":48882,"src":"1943:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48870,"name":"bytes","nodeType":"ElementaryTypeName","src":"1943:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1942:19:32"},"scope":49256,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48914,"nodeType":"FunctionDefinition","src":"2145:162:32","nodes":[],"body":{"id":48913,"nodeType":"Block","src":"2216:91:32","nodes":[],"statements":[{"expression":{"id":48895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48890,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48888,"src":"2226:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":48893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2243:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":48892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2233:9:32","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":48891,"name":"bytes","nodeType":"ElementaryTypeName","src":"2237:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":48894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2233:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2226:19:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48896,"nodeType":"ExpressionStatement","src":"2226:19:32"},{"expression":{"id":48911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48897,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48888,"src":"2255:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48899,"indexExpression":{"hexValue":"30","id":48898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2260:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2255:7:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"condition":{"id":48900,"name":"_in","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48885,"src":"2266:3:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"hexValue":"30783830","id":48907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2294:4:32","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"}],"id":48906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2287:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":48905,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2287:6:32","typeDescriptions":{}}},"id":48908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2287:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":48909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2266:33:32","trueExpression":{"arguments":[{"hexValue":"30783031","id":48903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2279:4:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":48902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2272:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":48901,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2272:6:32","typeDescriptions":{}}},"id":48904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2272:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"id":48910,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2265:35:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2255:45:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":48912,"nodeType":"ExpressionStatement","src":"2255:45:32"}]},"documentation":{"id":48883,"nodeType":"StructuredDocumentation","src":"2018:122:32","text":"@notice RLP encodes a bool.\n @param _in The bool to encode.\n @return out_ The RLP encoded bool in bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"writeBool","nameLocation":"2154:9:32","parameters":{"id":48886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48885,"mutability":"mutable","name":"_in","nameLocation":"2169:3:32","nodeType":"VariableDeclaration","scope":48914,"src":"2164:8:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48884,"name":"bool","nodeType":"ElementaryTypeName","src":"2164:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2163:10:32"},"returnParameters":{"id":48889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48888,"mutability":"mutable","name":"out_","nameLocation":"2210:4:32","nodeType":"VariableDeclaration","scope":48914,"src":"2197:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48887,"name":"bytes","nodeType":"ElementaryTypeName","src":"2197:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2196:19:32"},"scope":49256,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":49039,"nodeType":"FunctionDefinition","src":"2585:650:32","nodes":[],"body":{"id":49038,"nodeType":"Block","src":"2679:556:32","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48924,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48917,"src":"2693:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3536","id":48925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2700:2:32","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},"src":"2693:9:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":49036,"nodeType":"Block","src":"2814:415:32","statements":[{"assignments":[48953],"declarations":[{"constant":false,"id":48953,"mutability":"mutable","name":"lenLen","nameLocation":"2836:6:32","nodeType":"VariableDeclaration","scope":49036,"src":"2828:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48952,"name":"uint256","nodeType":"ElementaryTypeName","src":"2828:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48954,"nodeType":"VariableDeclarationStatement","src":"2828:14:32"},{"assignments":[48956],"declarations":[{"constant":false,"id":48956,"mutability":"mutable","name":"i","nameLocation":"2864:1:32","nodeType":"VariableDeclaration","scope":49036,"src":"2856:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48955,"name":"uint256","nodeType":"ElementaryTypeName","src":"2856:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48958,"initialValue":{"hexValue":"31","id":48957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2868:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"2856:13:32"},{"body":{"id":48971,"nodeType":"Block","src":"2905:67:32","statements":[{"expression":{"id":48965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2923:8:32","subExpression":{"id":48964,"name":"lenLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48953,"src":"2923:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48966,"nodeType":"ExpressionStatement","src":"2923:8:32"},{"expression":{"id":48969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48967,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48956,"src":"2949:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"hexValue":"323536","id":48968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2954:3:32","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"2949:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48970,"nodeType":"ExpressionStatement","src":"2949:8:32"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48959,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48917,"src":"2890:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":48960,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48956,"src":"2897:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2890:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":48962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2902:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2890:13:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48972,"nodeType":"WhileStatement","src":"2883:89:32"},{"expression":{"id":48980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48973,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48922,"src":"2986:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48976,"name":"lenLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48953,"src":"3003:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":48977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3012:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3003:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2993:9:32","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":48974,"name":"bytes","nodeType":"ElementaryTypeName","src":"2997:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":48979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2993:21:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2986:28:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48981,"nodeType":"ExpressionStatement","src":"2986:28:32"},{"expression":{"id":48999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48982,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48922,"src":"3028:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48984,"indexExpression":{"hexValue":"30","id":48983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3033:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3028:7:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":48997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":48995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":48989,"name":"lenLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48953,"src":"3051:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3045:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":48987,"name":"uint8","nodeType":"ElementaryTypeName","src":"3045:5:32","typeDescriptions":{}}},"id":48990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3045:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":48993,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48919,"src":"3067:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3061:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":48991,"name":"uint8","nodeType":"ElementaryTypeName","src":"3061:5:32","typeDescriptions":{}}},"id":48994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3061:14:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3045:30:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3535","id":48996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3078:2:32","typeDescriptions":{"typeIdentifier":"t_rational_55_by_1","typeString":"int_const 55"},"value":"55"},"src":"3045:35:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":48986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3038:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":48985,"name":"bytes1","nodeType":"ElementaryTypeName","src":"3038:6:32","typeDescriptions":{}}},"id":48998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3038:43:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3028:53:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":49000,"nodeType":"ExpressionStatement","src":"3028:53:32"},{"body":{"id":49034,"nodeType":"Block","src":"3125:94:32","statements":[{"expression":{"id":49032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":49011,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48922,"src":"3143:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49013,"indexExpression":{"id":49012,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48956,"src":"3148:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3143:7:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49018,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48917,"src":"3167:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":49019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3175:3:32","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49020,"name":"lenLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48953,"src":"3183:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":49021,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48956,"src":"3192:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3183:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49023,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3182:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3175:19:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49025,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3174:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3167:28:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49027,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3166:30:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"323536","id":49028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3199:3:32","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"3166:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3160:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":49016,"name":"uint8","nodeType":"ElementaryTypeName","src":"3160:5:32","typeDescriptions":{}}},"id":49030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3160:43:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":49015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3153:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":49014,"name":"bytes1","nodeType":"ElementaryTypeName","src":"3153:6:32","typeDescriptions":{}}},"id":49031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3153:51:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3143:61:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":49033,"nodeType":"ExpressionStatement","src":"3143:61:32"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49005,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48956,"src":"3107:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":49006,"name":"lenLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48953,"src":"3112:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3107:11:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49035,"initializationExpression":{"expression":{"id":49003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49001,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48956,"src":"3100:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":49002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3104:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3100:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49004,"nodeType":"ExpressionStatement","src":"3100:5:32"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":49009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3120:3:32","subExpression":{"id":49008,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48956,"src":"3120:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49010,"nodeType":"ExpressionStatement","src":"3120:3:32"},"nodeType":"ForStatement","src":"3095:124:32"}]},"id":49037,"nodeType":"IfStatement","src":"2689:540:32","trueBody":{"id":48951,"nodeType":"Block","src":"2704:104:32","statements":[{"expression":{"id":48932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48927,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48922,"src":"2718:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":48930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2735:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":48929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2725:9:32","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":48928,"name":"bytes","nodeType":"ElementaryTypeName","src":"2729:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":48931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2725:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2718:19:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48933,"nodeType":"ExpressionStatement","src":"2718:19:32"},{"expression":{"id":48949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48934,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48922,"src":"2751:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48936,"indexExpression":{"hexValue":"30","id":48935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2756:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2751:7:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":48947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":48941,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48917,"src":"2774:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2768:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":48939,"name":"uint8","nodeType":"ElementaryTypeName","src":"2768:5:32","typeDescriptions":{}}},"id":48942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2768:11:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":48945,"name":"_offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48919,"src":"2788:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2782:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":48943,"name":"uint8","nodeType":"ElementaryTypeName","src":"2782:5:32","typeDescriptions":{}}},"id":48946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2782:14:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2768:28:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":48938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2761:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":48937,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2761:6:32","typeDescriptions":{}}},"id":48948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2761:36:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2751:46:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":48950,"nodeType":"ExpressionStatement","src":"2751:46:32"}]}}]},"documentation":{"id":48915,"nodeType":"StructuredDocumentation","src":"2313:267:32","text":"@notice Encode the first byte and then the `len` in binary form if `length` is more than 55.\n @param _len    The length of the string or the payload.\n @param _offset 128 if item is string, 192 if item is list.\n @return out_ RLP encoded bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"_writeLength","nameLocation":"2594:12:32","parameters":{"id":48920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48917,"mutability":"mutable","name":"_len","nameLocation":"2615:4:32","nodeType":"VariableDeclaration","scope":49039,"src":"2607:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48916,"name":"uint256","nodeType":"ElementaryTypeName","src":"2607:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48919,"mutability":"mutable","name":"_offset","nameLocation":"2629:7:32","nodeType":"VariableDeclaration","scope":49039,"src":"2621:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48918,"name":"uint256","nodeType":"ElementaryTypeName","src":"2621:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2606:31:32"},"returnParameters":{"id":48923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48922,"mutability":"mutable","name":"out_","nameLocation":"2673:4:32","nodeType":"VariableDeclaration","scope":49039,"src":"2660:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48921,"name":"bytes","nodeType":"ElementaryTypeName","src":"2660:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2659:19:32"},"scope":49256,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":49106,"nodeType":"FunctionDefinition","src":"3403:383:32","nodes":[],"body":{"id":49105,"nodeType":"Block","src":"3475:311:32","nodes":[],"statements":[{"assignments":[49048],"declarations":[{"constant":false,"id":49048,"mutability":"mutable","name":"b","nameLocation":"3498:1:32","nodeType":"VariableDeclaration","scope":49105,"src":"3485:14:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49047,"name":"bytes","nodeType":"ElementaryTypeName","src":"3485:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":49053,"initialValue":{"arguments":[{"id":49051,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49042,"src":"3519:2:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":49049,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3502:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3506:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"3502:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3502:20:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3485:37:32"},{"assignments":[49055],"declarations":[{"constant":false,"id":49055,"mutability":"mutable","name":"i","nameLocation":"3541:1:32","nodeType":"VariableDeclaration","scope":49105,"src":"3533:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49054,"name":"uint256","nodeType":"ElementaryTypeName","src":"3533:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49057,"initialValue":{"hexValue":"30","id":49056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3545:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3533:13:32"},{"body":{"id":49072,"nodeType":"Block","src":"3576:77:32","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":49068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":49064,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49048,"src":"3594:1:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49066,"indexExpression":{"id":49065,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49055,"src":"3596:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3594:4:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":49067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3602:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3594:9:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49071,"nodeType":"IfStatement","src":"3590:53:32","trueBody":{"id":49070,"nodeType":"Block","src":"3605:38:32","statements":[{"id":49069,"nodeType":"Break","src":"3623:5:32"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49058,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49055,"src":"3563:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3332","id":49059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3567:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3563:6:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49073,"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":49062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3571:3:32","subExpression":{"id":49061,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49055,"src":"3571:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49063,"nodeType":"ExpressionStatement","src":"3571:3:32"},"nodeType":"ForStatement","src":"3556:97:32"},{"expression":{"id":49081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49074,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49045,"src":"3663:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":49077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3680:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":49078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49055,"src":"3685:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3680:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3670:9:32","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":49075,"name":"bytes","nodeType":"ElementaryTypeName","src":"3674:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":49080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3670:17:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3663:24:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49082,"nodeType":"ExpressionStatement","src":"3663:24:32"},{"body":{"id":49103,"nodeType":"Block","src":"3739:41:32","statements":[{"expression":{"id":49101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":49094,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49045,"src":"3753:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49096,"indexExpression":{"id":49095,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49084,"src":"3758:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3753:7:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":49097,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49048,"src":"3763:1:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49100,"indexExpression":{"id":49099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3765:3:32","subExpression":{"id":49098,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49055,"src":"3765:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3763:6:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3753:16:32","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":49102,"nodeType":"ExpressionStatement","src":"3753:16:32"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49087,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49084,"src":"3717:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":49088,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49045,"src":"3721:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3726:6:32","memberName":"length","nodeType":"MemberAccess","src":"3721:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3717:15:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49104,"initializationExpression":{"assignments":[49084],"declarations":[{"constant":false,"id":49084,"mutability":"mutable","name":"j","nameLocation":"3710:1:32","nodeType":"VariableDeclaration","scope":49104,"src":"3702:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49083,"name":"uint256","nodeType":"ElementaryTypeName","src":"3702:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49086,"initialValue":{"hexValue":"30","id":49085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3714:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3702:13:32"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":49092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3734:3:32","subExpression":{"id":49091,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49084,"src":"3734:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49093,"nodeType":"ExpressionStatement","src":"3734:3:32"},"nodeType":"ForStatement","src":"3697:83:32"}]},"documentation":{"id":49040,"nodeType":"StructuredDocumentation","src":"3241:157:32","text":"@notice Encode integer in big endian binary form with no leading zeroes.\n @param _x The integer to encode.\n @return out_ RLP encoded bytes."},"implemented":true,"kind":"function","modifiers":[],"name":"_toBinary","nameLocation":"3412:9:32","parameters":{"id":49043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49042,"mutability":"mutable","name":"_x","nameLocation":"3430:2:32","nodeType":"VariableDeclaration","scope":49106,"src":"3422:10:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49041,"name":"uint256","nodeType":"ElementaryTypeName","src":"3422:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3421:12:32"},"returnParameters":{"id":49046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49045,"mutability":"mutable","name":"out_","nameLocation":"3469:4:32","nodeType":"VariableDeclaration","scope":49106,"src":"3456:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49044,"name":"bytes","nodeType":"ElementaryTypeName","src":"3456:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3455:19:32"},"scope":49256,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":49163,"nodeType":"FunctionDefinition","src":"4059:618:32","nodes":[],"body":{"id":49162,"nodeType":"Block","src":"4132:545:32","nodes":[],"statements":[{"assignments":[49117],"declarations":[{"constant":false,"id":49117,"mutability":"mutable","name":"dest","nameLocation":"4150:4:32","nodeType":"VariableDeclaration","scope":49162,"src":"4142:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49116,"name":"uint256","nodeType":"ElementaryTypeName","src":"4142:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49119,"initialValue":{"id":49118,"name":"_dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49109,"src":"4157:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4142:20:32"},{"assignments":[49121],"declarations":[{"constant":false,"id":49121,"mutability":"mutable","name":"src","nameLocation":"4180:3:32","nodeType":"VariableDeclaration","scope":49162,"src":"4172:11:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49120,"name":"uint256","nodeType":"ElementaryTypeName","src":"4172:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49123,"initialValue":{"id":49122,"name":"_src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49111,"src":"4186:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4172:18:32"},{"assignments":[49125],"declarations":[{"constant":false,"id":49125,"mutability":"mutable","name":"len","nameLocation":"4208:3:32","nodeType":"VariableDeclaration","scope":49162,"src":"4200:11:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49124,"name":"uint256","nodeType":"ElementaryTypeName","src":"4200:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49127,"initialValue":{"id":49126,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49113,"src":"4214:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4200:18:32"},{"body":{"id":49144,"nodeType":"Block","src":"4258:136:32","statements":[{"AST":{"nativeSrc":"4281:56:32","nodeType":"YulBlock","src":"4281:56:32","statements":[{"expression":{"arguments":[{"name":"dest","nativeSrc":"4306:4:32","nodeType":"YulIdentifier","src":"4306:4:32"},{"arguments":[{"name":"src","nativeSrc":"4318:3:32","nodeType":"YulIdentifier","src":"4318:3:32"}],"functionName":{"name":"mload","nativeSrc":"4312:5:32","nodeType":"YulIdentifier","src":"4312:5:32"},"nativeSrc":"4312:10:32","nodeType":"YulFunctionCall","src":"4312:10:32"}],"functionName":{"name":"mstore","nativeSrc":"4299:6:32","nodeType":"YulIdentifier","src":"4299:6:32"},"nativeSrc":"4299:24:32","nodeType":"YulFunctionCall","src":"4299:24:32"},"nativeSrc":"4299:24:32","nodeType":"YulExpressionStatement","src":"4299:24:32"}]},"evmVersion":"cancun","externalReferences":[{"declaration":49117,"isOffset":false,"isSlot":false,"src":"4306:4:32","valueSize":1},{"declaration":49121,"isOffset":false,"isSlot":false,"src":"4318:3:32","valueSize":1}],"id":49135,"nodeType":"InlineAssembly","src":"4272:65:32"},{"expression":{"id":49138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49136,"name":"dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49117,"src":"4350:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":49137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4358:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4350:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49139,"nodeType":"ExpressionStatement","src":"4350:10:32"},{"expression":{"id":49142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49140,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49121,"src":"4374:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":49141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4381:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4374:9:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49143,"nodeType":"ExpressionStatement","src":"4374:9:32"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49128,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49125,"src":"4236:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":49129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4243:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4236:9:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49145,"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":49133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49131,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49125,"src":"4247:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":49132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4254:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4247:9:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49134,"nodeType":"ExpressionStatement","src":"4247:9:32"},"nodeType":"ForStatement","src":"4229:165:32"},{"assignments":[49147],"declarations":[{"constant":false,"id":49147,"mutability":"mutable","name":"mask","nameLocation":"4412:4:32","nodeType":"VariableDeclaration","scope":49162,"src":"4404:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49146,"name":"uint256","nodeType":"ElementaryTypeName","src":"4404:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49148,"nodeType":"VariableDeclarationStatement","src":"4404:12:32"},{"id":49160,"nodeType":"UncheckedBlock","src":"4426:63:32","statements":[{"expression":{"id":49158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49149,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49147,"src":"4450:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":49150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4457:3:32","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":49151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4465:2:32","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":49152,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49125,"src":"4470:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4465:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49154,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4464:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4457:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":49156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4477:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4457:21:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4450:28:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49159,"nodeType":"ExpressionStatement","src":"4450:28:32"}]},{"AST":{"nativeSrc":"4507:164:32","nodeType":"YulBlock","src":"4507:164:32","statements":[{"nativeSrc":"4521:41:32","nodeType":"YulVariableDeclaration","src":"4521:41:32","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4546:3:32","nodeType":"YulIdentifier","src":"4546:3:32"}],"functionName":{"name":"mload","nativeSrc":"4540:5:32","nodeType":"YulIdentifier","src":"4540:5:32"},"nativeSrc":"4540:10:32","nodeType":"YulFunctionCall","src":"4540:10:32"},{"arguments":[{"name":"mask","nativeSrc":"4556:4:32","nodeType":"YulIdentifier","src":"4556:4:32"}],"functionName":{"name":"not","nativeSrc":"4552:3:32","nodeType":"YulIdentifier","src":"4552:3:32"},"nativeSrc":"4552:9:32","nodeType":"YulFunctionCall","src":"4552:9:32"}],"functionName":{"name":"and","nativeSrc":"4536:3:32","nodeType":"YulIdentifier","src":"4536:3:32"},"nativeSrc":"4536:26:32","nodeType":"YulFunctionCall","src":"4536:26:32"},"variables":[{"name":"srcpart","nativeSrc":"4525:7:32","nodeType":"YulTypedName","src":"4525:7:32","type":""}]},{"nativeSrc":"4575:38:32","nodeType":"YulVariableDeclaration","src":"4575:38:32","value":{"arguments":[{"arguments":[{"name":"dest","nativeSrc":"4601:4:32","nodeType":"YulIdentifier","src":"4601:4:32"}],"functionName":{"name":"mload","nativeSrc":"4595:5:32","nodeType":"YulIdentifier","src":"4595:5:32"},"nativeSrc":"4595:11:32","nodeType":"YulFunctionCall","src":"4595:11:32"},{"name":"mask","nativeSrc":"4608:4:32","nodeType":"YulIdentifier","src":"4608:4:32"}],"functionName":{"name":"and","nativeSrc":"4591:3:32","nodeType":"YulIdentifier","src":"4591:3:32"},"nativeSrc":"4591:22:32","nodeType":"YulFunctionCall","src":"4591:22:32"},"variables":[{"name":"destpart","nativeSrc":"4579:8:32","nodeType":"YulTypedName","src":"4579:8:32","type":""}]},{"expression":{"arguments":[{"name":"dest","nativeSrc":"4633:4:32","nodeType":"YulIdentifier","src":"4633:4:32"},{"arguments":[{"name":"destpart","nativeSrc":"4642:8:32","nodeType":"YulIdentifier","src":"4642:8:32"},{"name":"srcpart","nativeSrc":"4652:7:32","nodeType":"YulIdentifier","src":"4652:7:32"}],"functionName":{"name":"or","nativeSrc":"4639:2:32","nodeType":"YulIdentifier","src":"4639:2:32"},"nativeSrc":"4639:21:32","nodeType":"YulFunctionCall","src":"4639:21:32"}],"functionName":{"name":"mstore","nativeSrc":"4626:6:32","nodeType":"YulIdentifier","src":"4626:6:32"},"nativeSrc":"4626:35:32","nodeType":"YulFunctionCall","src":"4626:35:32"},"nativeSrc":"4626:35:32","nodeType":"YulExpressionStatement","src":"4626:35:32"}]},"evmVersion":"cancun","externalReferences":[{"declaration":49117,"isOffset":false,"isSlot":false,"src":"4601:4:32","valueSize":1},{"declaration":49117,"isOffset":false,"isSlot":false,"src":"4633:4:32","valueSize":1},{"declaration":49147,"isOffset":false,"isSlot":false,"src":"4556:4:32","valueSize":1},{"declaration":49147,"isOffset":false,"isSlot":false,"src":"4608:4:32","valueSize":1},{"declaration":49121,"isOffset":false,"isSlot":false,"src":"4546:3:32","valueSize":1}],"id":49161,"nodeType":"InlineAssembly","src":"4498:173:32"}]},"documentation":{"id":49107,"nodeType":"StructuredDocumentation","src":"3792:262:32","text":"@custom:attribution https://github.com/Arachnid/solidity-stringutils\n @notice Copies a piece of memory to another location.\n @param _dest Destination location.\n @param _src  Source location.\n @param _len  Length of memory to copy."},"implemented":true,"kind":"function","modifiers":[],"name":"_memcpy","nameLocation":"4068:7:32","parameters":{"id":49114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49109,"mutability":"mutable","name":"_dest","nameLocation":"4084:5:32","nodeType":"VariableDeclaration","scope":49163,"src":"4076:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49108,"name":"uint256","nodeType":"ElementaryTypeName","src":"4076:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49111,"mutability":"mutable","name":"_src","nameLocation":"4099:4:32","nodeType":"VariableDeclaration","scope":49163,"src":"4091:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49110,"name":"uint256","nodeType":"ElementaryTypeName","src":"4091:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49113,"mutability":"mutable","name":"_len","nameLocation":"4113:4:32","nodeType":"VariableDeclaration","scope":49163,"src":"4105:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49112,"name":"uint256","nodeType":"ElementaryTypeName","src":"4105:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4075:43:32"},"returnParameters":{"id":49115,"nodeType":"ParameterList","parameters":[],"src":"4132:0:32"},"scope":49256,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":49255,"nodeType":"FunctionDefinition","src":"4931:741:32","nodes":[],"body":{"id":49254,"nodeType":"Block","src":"5012:660:32","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49172,"name":"_list","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49167,"src":"5026:5:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":49173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5032:6:32","memberName":"length","nodeType":"MemberAccess","src":"5026:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5042:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5026:17:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49182,"nodeType":"IfStatement","src":"5022:67:32","trueBody":{"id":49181,"nodeType":"Block","src":"5045:44:32","statements":[{"expression":{"arguments":[{"hexValue":"30","id":49178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5076:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":49177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5066:9:32","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":49176,"name":"bytes","nodeType":"ElementaryTypeName","src":"5070:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":49179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5066:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":49171,"id":49180,"nodeType":"Return","src":"5059:19:32"}]}},{"assignments":[49184],"declarations":[{"constant":false,"id":49184,"mutability":"mutable","name":"len","nameLocation":"5107:3:32","nodeType":"VariableDeclaration","scope":49254,"src":"5099:11:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49183,"name":"uint256","nodeType":"ElementaryTypeName","src":"5099:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49185,"nodeType":"VariableDeclarationStatement","src":"5099:11:32"},{"assignments":[49187],"declarations":[{"constant":false,"id":49187,"mutability":"mutable","name":"i","nameLocation":"5128:1:32","nodeType":"VariableDeclaration","scope":49254,"src":"5120:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49186,"name":"uint256","nodeType":"ElementaryTypeName","src":"5120:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49189,"initialValue":{"hexValue":"30","id":49188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5132:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5120:13:32"},{"body":{"id":49204,"nodeType":"Block","src":"5173:47:32","statements":[{"expression":{"id":49202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49197,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49184,"src":"5187:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":49198,"name":"_list","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49167,"src":"5194:5:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":49200,"indexExpression":{"id":49199,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49187,"src":"5200:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5194:8:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5203:6:32","memberName":"length","nodeType":"MemberAccess","src":"5194:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5187:22:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49203,"nodeType":"ExpressionStatement","src":"5187:22:32"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49187,"src":"5150:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":49191,"name":"_list","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49167,"src":"5154:5:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":49192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5160:6:32","memberName":"length","nodeType":"MemberAccess","src":"5154:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5150:16:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49205,"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":49195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5168:3:32","subExpression":{"id":49194,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49187,"src":"5168:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49196,"nodeType":"ExpressionStatement","src":"5168:3:32"},"nodeType":"ForStatement","src":"5143:77:32"},{"expression":{"id":49211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49206,"name":"out_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49170,"src":"5230:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49209,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49184,"src":"5247:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5237:9:32","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":49207,"name":"bytes","nodeType":"ElementaryTypeName","src":"5241:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":49210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5237:14:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"5230:21:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49212,"nodeType":"ExpressionStatement","src":"5230:21:32"},{"assignments":[49214],"declarations":[{"constant":false,"id":49214,"mutability":"mutable","name":"flattenedPtr","nameLocation":"5269:12:32","nodeType":"VariableDeclaration","scope":49254,"src":"5261:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49213,"name":"uint256","nodeType":"ElementaryTypeName","src":"5261:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49215,"nodeType":"VariableDeclarationStatement","src":"5261:20:32"},{"AST":{"nativeSrc":"5300:55:32","nodeType":"YulBlock","src":"5300:55:32","statements":[{"nativeSrc":"5314:31:32","nodeType":"YulAssignment","src":"5314:31:32","value":{"arguments":[{"name":"out_","nativeSrc":"5334:4:32","nodeType":"YulIdentifier","src":"5334:4:32"},{"kind":"number","nativeSrc":"5340:4:32","nodeType":"YulLiteral","src":"5340:4:32","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5330:3:32","nodeType":"YulIdentifier","src":"5330:3:32"},"nativeSrc":"5330:15:32","nodeType":"YulFunctionCall","src":"5330:15:32"},"variableNames":[{"name":"flattenedPtr","nativeSrc":"5314:12:32","nodeType":"YulIdentifier","src":"5314:12:32"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":49214,"isOffset":false,"isSlot":false,"src":"5314:12:32","valueSize":1},{"declaration":49170,"isOffset":false,"isSlot":false,"src":"5334:4:32","valueSize":1}],"id":49216,"nodeType":"InlineAssembly","src":"5291:64:32"},{"body":{"id":49252,"nodeType":"Block","src":"5400:266:32","statements":[{"assignments":[49229],"declarations":[{"constant":false,"id":49229,"mutability":"mutable","name":"item","nameLocation":"5427:4:32","nodeType":"VariableDeclaration","scope":49252,"src":"5414:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49228,"name":"bytes","nodeType":"ElementaryTypeName","src":"5414:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":49233,"initialValue":{"baseExpression":{"id":49230,"name":"_list","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49167,"src":"5434:5:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":49232,"indexExpression":{"id":49231,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49187,"src":"5440:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5434:8:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5414:28:32"},{"assignments":[49235],"declarations":[{"constant":false,"id":49235,"mutability":"mutable","name":"listPtr","nameLocation":"5465:7:32","nodeType":"VariableDeclaration","scope":49252,"src":"5457:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49234,"name":"uint256","nodeType":"ElementaryTypeName","src":"5457:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49236,"nodeType":"VariableDeclarationStatement","src":"5457:15:32"},{"AST":{"nativeSrc":"5495:58:32","nodeType":"YulBlock","src":"5495:58:32","statements":[{"nativeSrc":"5513:26:32","nodeType":"YulAssignment","src":"5513:26:32","value":{"arguments":[{"name":"item","nativeSrc":"5528:4:32","nodeType":"YulIdentifier","src":"5528:4:32"},{"kind":"number","nativeSrc":"5534:4:32","nodeType":"YulLiteral","src":"5534:4:32","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5524:3:32","nodeType":"YulIdentifier","src":"5524:3:32"},"nativeSrc":"5524:15:32","nodeType":"YulFunctionCall","src":"5524:15:32"},"variableNames":[{"name":"listPtr","nativeSrc":"5513:7:32","nodeType":"YulIdentifier","src":"5513:7:32"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":49229,"isOffset":false,"isSlot":false,"src":"5528:4:32","valueSize":1},{"declaration":49235,"isOffset":false,"isSlot":false,"src":"5513:7:32","valueSize":1}],"id":49237,"nodeType":"InlineAssembly","src":"5486:67:32"},{"expression":{"arguments":[{"id":49239,"name":"flattenedPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49214,"src":"5575:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49240,"name":"listPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49235,"src":"5589:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":49241,"name":"item","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49229,"src":"5598:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5603:6:32","memberName":"length","nodeType":"MemberAccess","src":"5598:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49238,"name":"_memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49163,"src":"5567:7:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":49243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5567:43:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49244,"nodeType":"ExpressionStatement","src":"5567:43:32"},{"expression":{"id":49250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49245,"name":"flattenedPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49214,"src":"5624:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":49246,"name":"_list","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49167,"src":"5640:5:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":49248,"indexExpression":{"id":49247,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49187,"src":"5646:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5640:8:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":49249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5649:6:32","memberName":"length","nodeType":"MemberAccess","src":"5640:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5624:31:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49251,"nodeType":"ExpressionStatement","src":"5624:31:32"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49221,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49187,"src":"5377:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":49222,"name":"_list","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49167,"src":"5381:5:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":49223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5387:6:32","memberName":"length","nodeType":"MemberAccess","src":"5381:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5377:16:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49253,"initializationExpression":{"expression":{"id":49219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49217,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49187,"src":"5370:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":49218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5374:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5370:5:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49220,"nodeType":"ExpressionStatement","src":"5370:5:32"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":49226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5395:3:32","subExpression":{"id":49225,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49187,"src":"5395:1:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49227,"nodeType":"ExpressionStatement","src":"5395:3:32"},"nodeType":"ForStatement","src":"5365:301:32"}]},"documentation":{"id":49164,"nodeType":"StructuredDocumentation","src":"4683:243:32","text":"@custom:attribution https://github.com/sammayo/solidity-rlp-encoder\n @notice Flattens a list of byte strings into one byte string.\n @param _list List of byte strings to flatten.\n @return out_ The flattened byte string."},"implemented":true,"kind":"function","modifiers":[],"name":"_flatten","nameLocation":"4940:8:32","parameters":{"id":49168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49167,"mutability":"mutable","name":"_list","nameLocation":"4964:5:32","nodeType":"VariableDeclaration","scope":49255,"src":"4949:20:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":49165,"name":"bytes","nodeType":"ElementaryTypeName","src":"4949:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":49166,"nodeType":"ArrayTypeName","src":"4949:7:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"4948:22:32"},"returnParameters":{"id":49171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49170,"mutability":"mutable","name":"out_","nameLocation":"5006:4:32","nodeType":"VariableDeclaration","scope":49255,"src":"4993:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49169,"name":"bytes","nodeType":"ElementaryTypeName","src":"4993:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4992:19:32"},"scope":49256,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"RLPWriter","contractDependencies":[],"contractKind":"library","documentation":{"id":48760,"nodeType":"StructuredDocumentation","src":"57:328:32","text":"@custom:attribution https://github.com/bakaoh/solidity-rlp-encode\n @title RLPWriter\n @author RLPWriter is a library for encoding Solidity types to RLP bytes. Adapted from Bakaoh's\n         RLPEncode library (https://github.com/bakaoh/solidity-rlp-encode) with minor\n         modifications to improve legibility."},"fullyImplemented":true,"linearizedBaseContracts":[49256],"name":"RLPWriter","nameLocation":"393:9:32","scope":49257,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":32}