{
  "contractName": "DNSClaimChecker",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/arachnid/Dropbox/projects/dnsregistrar/contracts/DNSClaimChecker.sol\":\"DNSClaimChecker\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/arachnid/Dropbox/projects/dnsregistrar/contracts/DNSClaimChecker.sol\":{\"keccak256\":\"0x09651e258e14992928296855b27f397bc7c03caf3787a3c11264cf6513e61f55\",\"urls\":[\"bzz-raw://f954dc0699fccaf7988a43f51b4c0cd9b969ab485527b8576d17b828377002d2\",\"dweb:/ipfs/Qme9Rqb1WjtjPuTNJ6tSrZdceQHQA4bzz2t88kJMDp4MNV\"]},\"@ensdomains/buffer/contracts/Buffer.sol\":{\"keccak256\":\"0xa9ac824902ab6aaf6883432cd6f2a853186fcce568d63d04fa8143df6c5d6ebd\",\"urls\":[\"bzz-raw://99a06f0895b90759b92067c86b0eba1823bb6180ef4f3e3ed18abef2ec43eab9\",\"dweb:/ipfs/QmQVmiDPkuXZq94G6Mc3TChVrYzvEk3gbGLVoJrVKKf4uz\"]},\"@ensdomains/dnssec-oracle/contracts/BytesUtils.sol\":{\"keccak256\":\"0x17b0123a981825ac9445ec82c8e20288321b27139518ba1f81c4cbd06f1312ab\",\"urls\":[\"bzz-raw://fe03e00240c645751873f38f56cc3db12d19a82538a0f0e9648ccfc23e8a715d\",\"dweb:/ipfs/QmbT7Q7GUgkZFY5gA4RxhWg3anPKiH9EZoM6HWBKDkK7dp\"]},\"@ensdomains/dnssec-oracle/contracts/DNSSEC.sol\":{\"keccak256\":\"0x8657b615b0d13ca3c52be359127af8d4251b845255cf870ac30f3541eaa62db8\",\"urls\":[\"bzz-raw://2db577b2144ea6b7439d7a244b931b704ecea548bba5707df57528b56d528c81\",\"dweb:/ipfs/QmbjYLu3w6DrLvvY9fFCFBUc2mfjjvj2ULeEBKw6FXHR6q\"]},\"@ensdomains/dnssec-oracle/contracts/RRUtils.sol\":{\"keccak256\":\"0x52cca336743e65b57ce01a30bbc7ed8523758853ab7d35db57a6f40d4a3bf892\",\"urls\":[\"bzz-raw://feb1f75afcea14258289d466c9bfcb4cf648858791ff1780b5d3a4191e4158e2\",\"dweb:/ipfs/QmTc4vx6sEx9jW3Efu1QAFQQ7JTarfMDYwgv4FzZoxTWUx\"]}},\"version\":1}",
  "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c0ec8d7a1db5909d3c18e1946876eba616dc53fce5b808085907e9955cc3ae3764736f6c63430007040033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c0ec8d7a1db5909d3c18e1946876eba616dc53fce5b808085907e9955cc3ae3764736f6c63430007040033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "252:2765:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "252:2765:0:-:0;;;;;;;;",
  "source": "pragma solidity ^0.7.0;\n\nimport \"@ensdomains/dnssec-oracle/contracts/DNSSEC.sol\";\nimport \"@ensdomains/dnssec-oracle/contracts/BytesUtils.sol\";\nimport \"@ensdomains/dnssec-oracle/contracts/RRUtils.sol\";\nimport \"@ensdomains/buffer/contracts/Buffer.sol\";\n\nlibrary DNSClaimChecker {\n\n    using BytesUtils for bytes;\n    using RRUtils for *;\n    using Buffer for Buffer.buffer;\n\n    uint16 constant CLASS_INET = 1;\n    uint16 constant TYPE_TXT = 16;\n\n    function getOwnerAddress(DNSSEC oracle, bytes memory name, bytes memory proof)\n        internal\n        view\n        returns (address, bool)\n    {\n        // Add \"_ens.\" to the front of the name.\n        Buffer.buffer memory buf;\n        buf.init(name.length + 5);\n        buf.append(\"\\x04_ens\");\n        buf.append(name);\n        bytes20 hash;\n        uint64 inserted;\n        // Check the provided TXT record has been validated by the oracle\n        (, inserted, hash) = oracle.rrdata(TYPE_TXT, buf.buf);\n        if (hash == bytes20(0) && proof.length == 0) return (address(0x0), false);\n\n        require(hash == bytes20(keccak256(proof)));\n\n        for (RRUtils.RRIterator memory iter = proof.iterateRRs(0); !iter.done(); iter.next()) {\n            require(inserted + iter.ttl >= block.timestamp, \"DNS record is stale; refresh or delete it before proceeding.\");\n\n            bool found;\n            address addr;\n            (addr, found) = parseRR(proof, iter.rdataOffset);\n            if (found) {\n                return (addr, true);\n            }\n        }\n\n        return (address(0x0), false);\n    }\n\n    function parseRR(bytes memory rdata, uint idx) internal pure returns (address, bool) {\n        while (idx < rdata.length) {\n            uint len = rdata.readUint8(idx); idx += 1;\n\n            bool found;\n            address addr;\n            (addr, found) = parseString(rdata, idx, len);\n\n            if (found) return (addr, true);\n            idx += len;\n        }\n\n        return (address(0x0), false);\n    }\n\n    function parseString(bytes memory str, uint idx, uint len) internal pure returns (address, bool) {\n        // TODO: More robust parsing that handles whitespace and multiple key/value pairs\n        if (str.readUint32(idx) != 0x613d3078) return (address(0x0), false); // 0x613d3078 == 'a=0x'\n        if (len < 44) return (address(0x0), false);\n        return hexToAddress(str, idx + 4);\n    }\n\n    function hexToAddress(bytes memory str, uint idx) internal pure returns (address, bool) {\n        if (str.length - idx < 40) return (address(0x0), false);\n        uint ret = 0;\n        for (uint i = idx; i < idx + 40; i++) {\n            ret <<= 4;\n            uint x = str.readUint8(i);\n            if (x >= 48 && x < 58) {\n                ret |= x - 48;\n            } else if (x >= 65 && x < 71) {\n                ret |= x - 55;\n            } else if (x >= 97 && x < 103) {\n                ret |= x - 87;\n            } else {\n                return (address(0x0), false);\n            }\n        }\n        return (address(ret), true);\n    }\n}\n",
  "sourcePath": "/home/arachnid/Dropbox/projects/dnsregistrar/contracts/DNSClaimChecker.sol",
  "ast": {
    "absolutePath": "/home/arachnid/Dropbox/projects/dnsregistrar/contracts/DNSClaimChecker.sol",
    "exportedSymbols": {
      "Buffer": [
        1452
      ],
      "BytesUtils": [
        2183
      ],
      "DNSClaimChecker": [
        390
      ],
      "DNSSEC": [
        2273
      ],
      "RRUtils": [
        3396
      ]
    },
    "id": 391,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1,
        "literals": [
          "solidity",
          "^",
          "0.7",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:0"
      },
      {
        "absolutePath": "@ensdomains/dnssec-oracle/contracts/DNSSEC.sol",
        "file": "@ensdomains/dnssec-oracle/contracts/DNSSEC.sol",
        "id": 2,
        "nodeType": "ImportDirective",
        "scope": 391,
        "sourceUnit": 2274,
        "src": "25:56:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/dnssec-oracle/contracts/BytesUtils.sol",
        "file": "@ensdomains/dnssec-oracle/contracts/BytesUtils.sol",
        "id": 3,
        "nodeType": "ImportDirective",
        "scope": 391,
        "sourceUnit": 2184,
        "src": "82:60:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/dnssec-oracle/contracts/RRUtils.sol",
        "file": "@ensdomains/dnssec-oracle/contracts/RRUtils.sol",
        "id": 4,
        "nodeType": "ImportDirective",
        "scope": 391,
        "sourceUnit": 3397,
        "src": "143:57:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/buffer/contracts/Buffer.sol",
        "file": "@ensdomains/buffer/contracts/Buffer.sol",
        "id": 5,
        "nodeType": "ImportDirective",
        "scope": 391,
        "sourceUnit": 1453,
        "src": "201:49:0",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "fullyImplemented": true,
        "id": 390,
        "linearizedBaseContracts": [
          390
        ],
        "name": "DNSClaimChecker",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 8,
            "libraryName": {
              "id": 6,
              "name": "BytesUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2183,
              "src": "289:10:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BytesUtils_$2183",
                "typeString": "library BytesUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "283:27:0",
            "typeName": {
              "id": 7,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "304:5:0",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            }
          },
          {
            "id": 10,
            "libraryName": {
              "id": 9,
              "name": "RRUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3396,
              "src": "321:7:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_RRUtils_$3396",
                "typeString": "library RRUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "315:20:0"
          },
          {
            "id": 13,
            "libraryName": {
              "id": 11,
              "name": "Buffer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1452,
              "src": "346:6:0",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Buffer_$1452",
                "typeString": "library Buffer"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "340:31:0",
            "typeName": {
              "id": 12,
              "name": "Buffer.buffer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 986,
              "src": "357:13:0",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_buffer_$986_storage_ptr",
                "typeString": "struct Buffer.buffer"
              }
            }
          },
          {
            "constant": true,
            "id": 16,
            "mutability": "constant",
            "name": "CLASS_INET",
            "nodeType": "VariableDeclaration",
            "scope": 390,
            "src": "377:30:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint16",
              "typeString": "uint16"
            },
            "typeName": {
              "id": 14,
              "name": "uint16",
              "nodeType": "ElementaryTypeName",
              "src": "377:6:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint16",
                "typeString": "uint16"
              }
            },
            "value": {
              "hexValue": "31",
              "id": 15,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "406:1:0",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 19,
            "mutability": "constant",
            "name": "TYPE_TXT",
            "nodeType": "VariableDeclaration",
            "scope": 390,
            "src": "413:29:0",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint16",
              "typeString": "uint16"
            },
            "typeName": {
              "id": 17,
              "name": "uint16",
              "nodeType": "ElementaryTypeName",
              "src": "413:6:0",
              "typeDescriptions": {
                "typeIdentifier": "t_uint16",
                "typeString": "uint16"
              }
            },
            "value": {
              "hexValue": "3136",
              "id": 18,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "440:2:0",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_16_by_1",
                "typeString": "int_const 16"
              },
              "value": "16"
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 165,
              "nodeType": "Block",
              "src": "594:963:0",
              "statements": [
                {
                  "assignments": [
                    35
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 35,
                      "mutability": "mutable",
                      "name": "buf",
                      "nodeType": "VariableDeclaration",
                      "scope": 165,
                      "src": "653:24:0",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_buffer_$986_memory_ptr",
                        "typeString": "struct Buffer.buffer"
                      },
                      "typeName": {
                        "id": 34,
                        "name": "Buffer.buffer",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 986,
                        "src": "653:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$986_storage_ptr",
                          "typeString": "struct Buffer.buffer"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 36,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "653:24:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 43,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 40,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23,
                            "src": "696:4:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 41,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "696:11:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "hexValue": "35",
                          "id": 42,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "710:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_5_by_1",
                            "typeString": "int_const 5"
                          },
                          "value": "5"
                        },
                        "src": "696:15:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 37,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35,
                        "src": "687:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$986_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 39,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "init",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1022,
                      "src": "687:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$986_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$986_memory_ptr_$bound_to$_t_struct$_buffer_$986_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,uint256) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 44,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "687:25:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$986_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 45,
                  "nodeType": "ExpressionStatement",
                  "src": "687:25:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "045f656e73",
                        "id": 49,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "733:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f2d0687018fb278ad8ddf1072f709c8ce204add13813ec7180d0d4fbcfb146c0",
                          "typeString": "literal_string hex\"045f656e73\""
                        },
                        "value": "\u0004_ens"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_f2d0687018fb278ad8ddf1072f709c8ce204add13813ec7180d0d4fbcfb146c0",
                          "typeString": "literal_string hex\"045f656e73\""
                        }
                      ],
                      "expression": {
                        "id": 46,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35,
                        "src": "722:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$986_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 48,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1232,
                      "src": "722:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$986_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$986_memory_ptr_$bound_to$_t_struct$_buffer_$986_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 50,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "722:22:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$986_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 51,
                  "nodeType": "ExpressionStatement",
                  "src": "722:22:0"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 55,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23,
                        "src": "765:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 52,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 35,
                        "src": "754:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$986_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 54,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1232,
                      "src": "754:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$986_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$986_memory_ptr_$bound_to$_t_struct$_buffer_$986_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 56,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "754:16:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$986_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 57,
                  "nodeType": "ExpressionStatement",
                  "src": "754:16:0"
                },
                {
                  "assignments": [
                    59
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 59,
                      "mutability": "mutable",
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 165,
                      "src": "780:12:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes20",
                        "typeString": "bytes20"
                      },
                      "typeName": {
                        "id": 58,
                        "name": "bytes20",
                        "nodeType": "ElementaryTypeName",
                        "src": "780:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes20",
                          "typeString": "bytes20"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 60,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "780:12:0"
                },
                {
                  "assignments": [
                    62
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 62,
                      "mutability": "mutable",
                      "name": "inserted",
                      "nodeType": "VariableDeclaration",
                      "scope": 165,
                      "src": "802:15:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 61,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "802:6:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 63,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "802:15:0"
                },
                {
                  "expression": {
                    "id": 73,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "components": [
                        null,
                        {
                          "id": 64,
                          "name": "inserted",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 62,
                          "src": "904:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        {
                          "id": 65,
                          "name": "hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 59,
                          "src": "914:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        }
                      ],
                      "id": 66,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "901:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$_t_uint64_$_t_bytes20_$",
                        "typeString": "tuple(,uint64,bytes20)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 69,
                          "name": "TYPE_TXT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 19,
                          "src": "936:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        {
                          "expression": {
                            "id": 70,
                            "name": "buf",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 35,
                            "src": "946:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_buffer_$986_memory_ptr",
                              "typeString": "struct Buffer.buffer memory"
                            }
                          },
                          "id": 71,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "buf",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 983,
                          "src": "946:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          },
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "expression": {
                          "id": 67,
                          "name": "oracle",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 21,
                          "src": "922:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DNSSEC_$2273",
                            "typeString": "contract DNSSEC"
                          }
                        },
                        "id": 68,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "rrdata",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2272,
                        "src": "922:13:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint16_$_t_bytes_memory_ptr_$returns$_t_uint32_$_t_uint64_$_t_bytes20_$",
                          "typeString": "function (uint16,bytes memory) view external returns (uint32,uint64,bytes20)"
                        }
                      },
                      "id": 72,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "922:32:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint32_$_t_uint64_$_t_bytes20_$",
                        "typeString": "tuple(uint32,uint64,bytes20)"
                      }
                    },
                    "src": "901:53:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 74,
                  "nodeType": "ExpressionStatement",
                  "src": "901:53:0"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 85,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bytes20",
                        "typeString": "bytes20"
                      },
                      "id": 80,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 75,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 59,
                        "src": "968:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes20",
                          "typeString": "bytes20"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 78,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "984:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 77,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "976:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes20_$",
                            "typeString": "type(bytes20)"
                          },
                          "typeName": {
                            "id": 76,
                            "name": "bytes20",
                            "nodeType": "ElementaryTypeName",
                            "src": "976:7:0",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 79,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "976:10:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes20",
                          "typeString": "bytes20"
                        }
                      },
                      "src": "968:18:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 84,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 81,
                          "name": "proof",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25,
                          "src": "990:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 82,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "990:12:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "30",
                        "id": 83,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1006:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "990:17:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "968:39:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 93,
                  "nodeType": "IfStatement",
                  "src": "964:73:0",
                  "trueBody": {
                    "expression": {
                      "components": [
                        {
                          "arguments": [
                            {
                              "hexValue": "307830",
                              "id": 88,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1025:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 87,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1017:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 86,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "1017:7:0",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 89,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1017:12:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        {
                          "hexValue": "66616c7365",
                          "id": 90,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1031:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        }
                      ],
                      "id": 91,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "1016:21:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_address_payable_$_t_bool_$",
                        "typeString": "tuple(address payable,bool)"
                      }
                    },
                    "functionReturnParameters": 31,
                    "id": 92,
                    "nodeType": "Return",
                    "src": "1009:28:0"
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bytes20",
                          "typeString": "bytes20"
                        },
                        "id": 102,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 95,
                          "name": "hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 59,
                          "src": "1056:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 99,
                                  "name": "proof",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 25,
                                  "src": "1082:5:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                ],
                                "id": 98,
                                "name": "keccak256",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -8,
                                "src": "1072:9:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes memory) pure returns (bytes32)"
                                }
                              },
                              "id": 100,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1072:16:0",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 97,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1064:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes20_$",
                              "typeString": "type(bytes20)"
                            },
                            "typeName": {
                              "id": 96,
                              "name": "bytes20",
                              "nodeType": "ElementaryTypeName",
                              "src": "1064:7:0",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 101,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1064:25:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        },
                        "src": "1056:33:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 94,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1048:7:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1048:42:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 104,
                  "nodeType": "ExpressionStatement",
                  "src": "1048:42:0"
                },
                {
                  "body": {
                    "id": 156,
                    "nodeType": "Block",
                    "src": "1187:325:0",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 129,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                },
                                "id": 126,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 123,
                                  "name": "inserted",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 62,
                                  "src": "1209:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "expression": {
                                    "id": 124,
                                    "name": "iter",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 108,
                                    "src": "1220:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_RRIterator_$2579_memory_ptr",
                                      "typeString": "struct RRUtils.RRIterator memory"
                                    }
                                  },
                                  "id": 125,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "ttl",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 2574,
                                  "src": "1220:8:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "src": "1209:19:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "expression": {
                                  "id": 127,
                                  "name": "block",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -4,
                                  "src": "1232:5:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_block",
                                    "typeString": "block"
                                  }
                                },
                                "id": 128,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "timestamp",
                                "nodeType": "MemberAccess",
                                "src": "1232:15:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "1209:38:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "444e53207265636f7264206973207374616c653b2072656672657368206f722064656c657465206974206265666f72652070726f63656564696e672e",
                              "id": 130,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1249:62:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_729e95952dd1843156517c8fdb21573009879ace602692e2f8274dcffa8c341b",
                                "typeString": "literal_string \"DNS record is stale; refresh or delete it before proceeding.\""
                              },
                              "value": "DNS record is stale; refresh or delete it before proceeding."
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_729e95952dd1843156517c8fdb21573009879ace602692e2f8274dcffa8c341b",
                                "typeString": "literal_string \"DNS record is stale; refresh or delete it before proceeding.\""
                              }
                            ],
                            "id": 122,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              -18,
                              -18
                            ],
                            "referencedDeclaration": -18,
                            "src": "1201:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 131,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1201:111:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 132,
                        "nodeType": "ExpressionStatement",
                        "src": "1201:111:0"
                      },
                      {
                        "assignments": [
                          134
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 134,
                            "mutability": "mutable",
                            "name": "found",
                            "nodeType": "VariableDeclaration",
                            "scope": 156,
                            "src": "1327:10:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 133,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "1327:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 135,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1327:10:0"
                      },
                      {
                        "assignments": [
                          137
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 137,
                            "mutability": "mutable",
                            "name": "addr",
                            "nodeType": "VariableDeclaration",
                            "scope": 156,
                            "src": "1351:12:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 136,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "1351:7:0",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 138,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1351:12:0"
                      },
                      {
                        "expression": {
                          "id": 147,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "components": [
                              {
                                "id": 139,
                                "name": "addr",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 137,
                                "src": "1378:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "id": 140,
                                "name": "found",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 134,
                                "src": "1384:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 141,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "TupleExpression",
                            "src": "1377:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_address_$_t_bool_$",
                              "typeString": "tuple(address,bool)"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 143,
                                "name": "proof",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25,
                                "src": "1401:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              {
                                "expression": {
                                  "id": 144,
                                  "name": "iter",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 108,
                                  "src": "1408:4:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_RRIterator_$2579_memory_ptr",
                                    "typeString": "struct RRUtils.RRIterator memory"
                                  }
                                },
                                "id": 145,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "rdataOffset",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2576,
                                "src": "1408:16:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 142,
                              "name": "parseRR",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 228,
                              "src": "1393:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$_t_bool_$",
                                "typeString": "function (bytes memory,uint256) pure returns (address,bool)"
                              }
                            },
                            "id": 146,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1393:32:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_address_$_t_bool_$",
                              "typeString": "tuple(address,bool)"
                            }
                          },
                          "src": "1377:48:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 148,
                        "nodeType": "ExpressionStatement",
                        "src": "1377:48:0"
                      },
                      {
                        "condition": {
                          "id": 149,
                          "name": "found",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 134,
                          "src": "1443:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 155,
                        "nodeType": "IfStatement",
                        "src": "1439:63:0",
                        "trueBody": {
                          "id": 154,
                          "nodeType": "Block",
                          "src": "1450:52:0",
                          "statements": [
                            {
                              "expression": {
                                "components": [
                                  {
                                    "id": 150,
                                    "name": "addr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 137,
                                    "src": "1476:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "hexValue": "74727565",
                                    "id": 151,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "bool",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1482:4:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "value": "true"
                                  }
                                ],
                                "id": 152,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "1475:12:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$_t_address_$_t_bool_$",
                                  "typeString": "tuple(address,bool)"
                                }
                              },
                              "functionReturnParameters": 31,
                              "id": 153,
                              "nodeType": "Return",
                              "src": "1468:19:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "id": 117,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "1160:12:0",
                    "subExpression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 114,
                          "name": "iter",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 108,
                          "src": "1161:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RRIterator_$2579_memory_ptr",
                            "typeString": "struct RRUtils.RRIterator memory"
                          }
                        },
                        "id": 115,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "done",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2622,
                        "src": "1161:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_RRIterator_$2579_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_RRIterator_$2579_memory_ptr_$",
                          "typeString": "function (struct RRUtils.RRIterator memory) pure returns (bool)"
                        }
                      },
                      "id": 116,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1161:11:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 157,
                  "initializationExpression": {
                    "assignments": [
                      108
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 108,
                        "mutability": "mutable",
                        "name": "iter",
                        "nodeType": "VariableDeclaration",
                        "scope": 157,
                        "src": "1106:30:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RRIterator_$2579_memory_ptr",
                          "typeString": "struct RRUtils.RRIterator"
                        },
                        "typeName": {
                          "id": 107,
                          "name": "RRUtils.RRIterator",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 2579,
                          "src": "1106:18:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RRIterator_$2579_storage_ptr",
                            "typeString": "struct RRUtils.RRIterator"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 113,
                    "initialValue": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 111,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1156:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "expression": {
                          "id": 109,
                          "name": "proof",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25,
                          "src": "1139:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 110,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "iterateRRs",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2606,
                        "src": "1139:16:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_struct$_RRIterator_$2579_memory_ptr_$bound_to$_t_bytes_memory_ptr_$",
                          "typeString": "function (bytes memory,uint256) pure returns (struct RRUtils.RRIterator memory)"
                        }
                      },
                      "id": 112,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1139:19:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RRIterator_$2579_memory_ptr",
                        "typeString": "struct RRUtils.RRIterator memory"
                      }
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1106:52:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 118,
                          "name": "iter",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 108,
                          "src": "1174:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RRIterator_$2579_memory_ptr",
                            "typeString": "struct RRUtils.RRIterator memory"
                          }
                        },
                        "id": 119,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "next",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2725,
                        "src": "1174:9:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_RRIterator_$2579_memory_ptr_$returns$__$bound_to$_t_struct$_RRIterator_$2579_memory_ptr_$",
                          "typeString": "function (struct RRUtils.RRIterator memory) pure"
                        }
                      },
                      "id": 120,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1174:11:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 121,
                    "nodeType": "ExpressionStatement",
                    "src": "1174:11:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "1101:411:0"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "arguments": [
                          {
                            "hexValue": "307830",
                            "id": 160,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1538:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 159,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1530:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 158,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1530:7:0",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 161,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1530:12:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 162,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1544:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "id": 163,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1529:21:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_payable_$_t_bool_$",
                      "typeString": "tuple(address payable,bool)"
                    }
                  },
                  "functionReturnParameters": 31,
                  "id": 164,
                  "nodeType": "Return",
                  "src": "1522:28:0"
                }
              ]
            },
            "id": 166,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getOwnerAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 26,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21,
                  "mutability": "mutable",
                  "name": "oracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 166,
                  "src": "474:13:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DNSSEC_$2273",
                    "typeString": "contract DNSSEC"
                  },
                  "typeName": {
                    "id": 20,
                    "name": "DNSSEC",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2273,
                    "src": "474:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DNSSEC_$2273",
                      "typeString": "contract DNSSEC"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23,
                  "mutability": "mutable",
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 166,
                  "src": "489:17:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 22,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "489:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25,
                  "mutability": "mutable",
                  "name": "proof",
                  "nodeType": "VariableDeclaration",
                  "scope": 166,
                  "src": "508:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 24,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "508:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "473:54:0"
            },
            "returnParameters": {
              "id": 31,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 28,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 166,
                  "src": "575:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 27,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "575:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 30,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 166,
                  "src": "584:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 29,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "584:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "574:15:0"
            },
            "scope": 390,
            "src": "449:1108:0",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 227,
              "nodeType": "Block",
              "src": "1648:326:0",
              "statements": [
                {
                  "body": {
                    "id": 218,
                    "nodeType": "Block",
                    "src": "1685:244:0",
                    "statements": [
                      {
                        "assignments": [
                          182
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 182,
                            "mutability": "mutable",
                            "name": "len",
                            "nodeType": "VariableDeclaration",
                            "scope": 218,
                            "src": "1699:8:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 181,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "1699:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 187,
                        "initialValue": {
                          "arguments": [
                            {
                              "id": 185,
                              "name": "idx",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 170,
                              "src": "1726:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 183,
                              "name": "rdata",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 168,
                              "src": "1710:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 184,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "readUint8",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1764,
                            "src": "1710:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
                              "typeString": "function (bytes memory,uint256) pure returns (uint8)"
                            }
                          },
                          "id": 186,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1710:20:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1699:31:0"
                      },
                      {
                        "expression": {
                          "id": 190,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 188,
                            "name": "idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 170,
                            "src": "1732:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "hexValue": "31",
                            "id": 189,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1739:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "1732:8:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 191,
                        "nodeType": "ExpressionStatement",
                        "src": "1732:8:0"
                      },
                      {
                        "assignments": [
                          193
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 193,
                            "mutability": "mutable",
                            "name": "found",
                            "nodeType": "VariableDeclaration",
                            "scope": 218,
                            "src": "1755:10:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 192,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "1755:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 194,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1755:10:0"
                      },
                      {
                        "assignments": [
                          196
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 196,
                            "mutability": "mutable",
                            "name": "addr",
                            "nodeType": "VariableDeclaration",
                            "scope": 218,
                            "src": "1779:12:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 195,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "1779:7:0",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 197,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1779:12:0"
                      },
                      {
                        "expression": {
                          "id": 206,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "components": [
                              {
                                "id": 198,
                                "name": "addr",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 196,
                                "src": "1806:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "id": 199,
                                "name": "found",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 193,
                                "src": "1812:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 200,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "TupleExpression",
                            "src": "1805:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_address_$_t_bool_$",
                              "typeString": "tuple(address,bool)"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 202,
                                "name": "rdata",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 168,
                                "src": "1833:5:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              {
                                "id": 203,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 170,
                                "src": "1840:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "id": 204,
                                "name": "len",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 182,
                                "src": "1845:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 201,
                              "name": "parseString",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 274,
                              "src": "1821:11:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_address_$_t_bool_$",
                                "typeString": "function (bytes memory,uint256,uint256) pure returns (address,bool)"
                              }
                            },
                            "id": 205,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1821:28:0",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_address_$_t_bool_$",
                              "typeString": "tuple(address,bool)"
                            }
                          },
                          "src": "1805:44:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 207,
                        "nodeType": "ExpressionStatement",
                        "src": "1805:44:0"
                      },
                      {
                        "condition": {
                          "id": 208,
                          "name": "found",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 193,
                          "src": "1868:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 213,
                        "nodeType": "IfStatement",
                        "src": "1864:30:0",
                        "trueBody": {
                          "expression": {
                            "components": [
                              {
                                "id": 209,
                                "name": "addr",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 196,
                                "src": "1883:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "hexValue": "74727565",
                                "id": 210,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1889:4:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              }
                            ],
                            "id": 211,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "1882:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_address_$_t_bool_$",
                              "typeString": "tuple(address,bool)"
                            }
                          },
                          "functionReturnParameters": 176,
                          "id": 212,
                          "nodeType": "Return",
                          "src": "1875:19:0"
                        }
                      },
                      {
                        "expression": {
                          "id": 216,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 214,
                            "name": "idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 170,
                            "src": "1908:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "id": 215,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 182,
                            "src": "1915:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1908:10:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 217,
                        "nodeType": "ExpressionStatement",
                        "src": "1908:10:0"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 180,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 177,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 170,
                      "src": "1665:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 178,
                        "name": "rdata",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 168,
                        "src": "1671:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 179,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "1671:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1665:18:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 219,
                  "nodeType": "WhileStatement",
                  "src": "1658:271:0"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "arguments": [
                          {
                            "hexValue": "307830",
                            "id": 222,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1955:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 221,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1947:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 220,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1947:7:0",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 223,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1947:12:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 224,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1961:5:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "id": 225,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1946:21:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_payable_$_t_bool_$",
                      "typeString": "tuple(address payable,bool)"
                    }
                  },
                  "functionReturnParameters": 176,
                  "id": 226,
                  "nodeType": "Return",
                  "src": "1939:28:0"
                }
              ]
            },
            "id": 228,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "parseRR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 171,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 168,
                  "mutability": "mutable",
                  "name": "rdata",
                  "nodeType": "VariableDeclaration",
                  "scope": 228,
                  "src": "1580:18:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 167,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1580:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 170,
                  "mutability": "mutable",
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 228,
                  "src": "1600:8:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 169,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1600:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1579:30:0"
            },
            "returnParameters": {
              "id": 176,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 173,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 228,
                  "src": "1633:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 172,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1633:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 175,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 228,
                  "src": "1642:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 174,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1642:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1632:15:0"
            },
            "scope": 390,
            "src": "1563:411:0",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 273,
              "nodeType": "Block",
              "src": "2077:293:0",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    },
                    "id": 246,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 243,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 232,
                          "src": "2196:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 241,
                          "name": "str",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 230,
                          "src": "2181:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 242,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "readUint32",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1804,
                        "src": "2181:14:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$",
                          "typeString": "function (bytes memory,uint256) pure returns (uint32)"
                        }
                      },
                      "id": 244,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2181:19:0",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30783631336433303738",
                      "id": 245,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2204:10:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1631400056_by_1",
                        "typeString": "int_const 1631400056"
                      },
                      "value": "0x613d3078"
                    },
                    "src": "2181:33:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 254,
                  "nodeType": "IfStatement",
                  "src": "2177:67:0",
                  "trueBody": {
                    "expression": {
                      "components": [
                        {
                          "arguments": [
                            {
                              "hexValue": "307830",
                              "id": 249,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2232:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 248,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2224:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 247,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2224:7:0",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 250,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2224:12:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        {
                          "hexValue": "66616c7365",
                          "id": 251,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2238:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        }
                      ],
                      "id": 252,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "2223:21:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_address_payable_$_t_bool_$",
                        "typeString": "tuple(address payable,bool)"
                      }
                    },
                    "functionReturnParameters": 240,
                    "id": 253,
                    "nodeType": "Return",
                    "src": "2216:28:0"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 257,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 255,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 234,
                      "src": "2282:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "hexValue": "3434",
                      "id": 256,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2288:2:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_44_by_1",
                        "typeString": "int_const 44"
                      },
                      "value": "44"
                    },
                    "src": "2282:8:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 265,
                  "nodeType": "IfStatement",
                  "src": "2278:42:0",
                  "trueBody": {
                    "expression": {
                      "components": [
                        {
                          "arguments": [
                            {
                              "hexValue": "307830",
                              "id": 260,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2308:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 259,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2300:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 258,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2300:7:0",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 261,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2300:12:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        {
                          "hexValue": "66616c7365",
                          "id": 262,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2314:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        }
                      ],
                      "id": 263,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "2299:21:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_address_payable_$_t_bool_$",
                        "typeString": "tuple(address payable,bool)"
                      }
                    },
                    "functionReturnParameters": 240,
                    "id": 264,
                    "nodeType": "Return",
                    "src": "2292:28:0"
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 267,
                        "name": "str",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 230,
                        "src": "2350:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 270,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 268,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 232,
                          "src": "2355:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "hexValue": "34",
                          "id": 269,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2361:1:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_4_by_1",
                            "typeString": "int_const 4"
                          },
                          "value": "4"
                        },
                        "src": "2355:7:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 266,
                      "name": "hexToAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 389,
                      "src": "2337:12:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$_t_bool_$",
                        "typeString": "function (bytes memory,uint256) pure returns (address,bool)"
                      }
                    },
                    "id": 271,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2337:26:0",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_$_t_bool_$",
                      "typeString": "tuple(address,bool)"
                    }
                  },
                  "functionReturnParameters": 240,
                  "id": 272,
                  "nodeType": "Return",
                  "src": "2330:33:0"
                }
              ]
            },
            "id": 274,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "parseString",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 235,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 230,
                  "mutability": "mutable",
                  "name": "str",
                  "nodeType": "VariableDeclaration",
                  "scope": 274,
                  "src": "2001:16:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 229,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2001:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 232,
                  "mutability": "mutable",
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 274,
                  "src": "2019:8:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 231,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2019:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 234,
                  "mutability": "mutable",
                  "name": "len",
                  "nodeType": "VariableDeclaration",
                  "scope": 274,
                  "src": "2029:8:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 233,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2029:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2000:38:0"
            },
            "returnParameters": {
              "id": 240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 237,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 274,
                  "src": "2062:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 236,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2062:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 239,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 274,
                  "src": "2071:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 238,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2071:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2061:15:0"
            },
            "scope": 390,
            "src": "1980:390:0",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 388,
              "nodeType": "Block",
              "src": "2464:551:0",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 290,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 288,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 285,
                          "name": "str",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 276,
                          "src": "2478:3:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 286,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "2478:10:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "-",
                      "rightExpression": {
                        "id": 287,
                        "name": "idx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 278,
                        "src": "2491:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2478:16:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "hexValue": "3430",
                      "id": 289,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2497:2:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_40_by_1",
                        "typeString": "int_const 40"
                      },
                      "value": "40"
                    },
                    "src": "2478:21:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 298,
                  "nodeType": "IfStatement",
                  "src": "2474:55:0",
                  "trueBody": {
                    "expression": {
                      "components": [
                        {
                          "arguments": [
                            {
                              "hexValue": "307830",
                              "id": 293,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2517:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 292,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2509:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 291,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2509:7:0",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 294,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2509:12:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        {
                          "hexValue": "66616c7365",
                          "id": 295,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2523:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        }
                      ],
                      "id": 296,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "2508:21:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_address_payable_$_t_bool_$",
                        "typeString": "tuple(address payable,bool)"
                      }
                    },
                    "functionReturnParameters": 284,
                    "id": 297,
                    "nodeType": "Return",
                    "src": "2501:28:0"
                  }
                },
                {
                  "assignments": [
                    300
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 300,
                      "mutability": "mutable",
                      "name": "ret",
                      "nodeType": "VariableDeclaration",
                      "scope": 388,
                      "src": "2539:8:0",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 299,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "2539:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 302,
                  "initialValue": {
                    "hexValue": "30",
                    "id": 301,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2550:1:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2539:12:0"
                },
                {
                  "body": {
                    "id": 379,
                    "nodeType": "Block",
                    "src": "2599:373:0",
                    "statements": [
                      {
                        "expression": {
                          "id": 317,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 315,
                            "name": "ret",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 300,
                            "src": "2613:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "<<=",
                          "rightHandSide": {
                            "hexValue": "34",
                            "id": 316,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2621:1:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            "value": "4"
                          },
                          "src": "2613:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 318,
                        "nodeType": "ExpressionStatement",
                        "src": "2613:9:0"
                      },
                      {
                        "assignments": [
                          320
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 320,
                            "mutability": "mutable",
                            "name": "x",
                            "nodeType": "VariableDeclaration",
                            "scope": 379,
                            "src": "2636:6:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 319,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "2636:4:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 325,
                        "initialValue": {
                          "arguments": [
                            {
                              "id": 323,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 304,
                              "src": "2659:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 321,
                              "name": "str",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 276,
                              "src": "2645:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 322,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "readUint8",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1764,
                            "src": "2645:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
                              "typeString": "function (bytes memory,uint256) pure returns (uint8)"
                            }
                          },
                          "id": 324,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2645:16:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2636:25:0"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 332,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 328,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 326,
                              "name": "x",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 320,
                              "src": "2679:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "hexValue": "3438",
                              "id": 327,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2684:2:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_48_by_1",
                                "typeString": "int_const 48"
                              },
                              "value": "48"
                            },
                            "src": "2679:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 331,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 329,
                              "name": "x",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 320,
                              "src": "2690:1:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "hexValue": "3538",
                              "id": 330,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2694:2:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_58_by_1",
                                "typeString": "int_const 58"
                              },
                              "value": "58"
                            },
                            "src": "2690:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "2679:17:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 346,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 342,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 340,
                                "name": "x",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 320,
                                "src": "2754:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "hexValue": "3635",
                                "id": 341,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2759:2:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_65_by_1",
                                  "typeString": "int_const 65"
                                },
                                "value": "65"
                              },
                              "src": "2754:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 345,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 343,
                                "name": "x",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 320,
                                "src": "2765:1:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "hexValue": "3731",
                                "id": 344,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2769:2:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_71_by_1",
                                  "typeString": "int_const 71"
                                },
                                "value": "71"
                              },
                              "src": "2765:6:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "2754:17:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 360,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 356,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 354,
                                  "name": "x",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 320,
                                  "src": "2829:1:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">=",
                                "rightExpression": {
                                  "hexValue": "3937",
                                  "id": 355,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2834:2:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_97_by_1",
                                    "typeString": "int_const 97"
                                  },
                                  "value": "97"
                                },
                                "src": "2829:7:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 359,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 357,
                                  "name": "x",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 320,
                                  "src": "2840:1:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "hexValue": "313033",
                                  "id": 358,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2844:3:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_103_by_1",
                                    "typeString": "int_const 103"
                                  },
                                  "value": "103"
                                },
                                "src": "2840:7:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "2829:18:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "id": 375,
                              "nodeType": "Block",
                              "src": "2901:61:0",
                              "statements": [
                                {
                                  "expression": {
                                    "components": [
                                      {
                                        "arguments": [
                                          {
                                            "hexValue": "307830",
                                            "id": 370,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "2935:3:0",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            },
                                            "value": "0x0"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            }
                                          ],
                                          "id": 369,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "2927:7:0",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_address_$",
                                            "typeString": "type(address)"
                                          },
                                          "typeName": {
                                            "id": 368,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "2927:7:0",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 371,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2927:12:0",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address_payable",
                                          "typeString": "address payable"
                                        }
                                      },
                                      {
                                        "hexValue": "66616c7365",
                                        "id": 372,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2941:5:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        },
                                        "value": "false"
                                      }
                                    ],
                                    "id": 373,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "2926:21:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$_t_address_payable_$_t_bool_$",
                                      "typeString": "tuple(address payable,bool)"
                                    }
                                  },
                                  "functionReturnParameters": 284,
                                  "id": 374,
                                  "nodeType": "Return",
                                  "src": "2919:28:0"
                                }
                              ]
                            },
                            "id": 376,
                            "nodeType": "IfStatement",
                            "src": "2825:137:0",
                            "trueBody": {
                              "id": 367,
                              "nodeType": "Block",
                              "src": "2849:46:0",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 365,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "id": 361,
                                      "name": "ret",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 300,
                                      "src": "2867:3:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "|=",
                                    "rightHandSide": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 364,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "id": 362,
                                        "name": "x",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 320,
                                        "src": "2874:1:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "hexValue": "3837",
                                        "id": 363,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2878:2:0",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_87_by_1",
                                          "typeString": "int_const 87"
                                        },
                                        "value": "87"
                                      },
                                      "src": "2874:6:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "2867:13:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 366,
                                  "nodeType": "ExpressionStatement",
                                  "src": "2867:13:0"
                                }
                              ]
                            }
                          },
                          "id": 377,
                          "nodeType": "IfStatement",
                          "src": "2750:212:0",
                          "trueBody": {
                            "id": 353,
                            "nodeType": "Block",
                            "src": "2773:46:0",
                            "statements": [
                              {
                                "expression": {
                                  "id": 351,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 347,
                                    "name": "ret",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 300,
                                    "src": "2791:3:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "|=",
                                  "rightHandSide": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 350,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 348,
                                      "name": "x",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 320,
                                      "src": "2798:1:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "hexValue": "3535",
                                      "id": 349,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "2802:2:0",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_55_by_1",
                                        "typeString": "int_const 55"
                                      },
                                      "value": "55"
                                    },
                                    "src": "2798:6:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "2791:13:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 352,
                                "nodeType": "ExpressionStatement",
                                "src": "2791:13:0"
                              }
                            ]
                          }
                        },
                        "id": 378,
                        "nodeType": "IfStatement",
                        "src": "2675:287:0",
                        "trueBody": {
                          "id": 339,
                          "nodeType": "Block",
                          "src": "2698:46:0",
                          "statements": [
                            {
                              "expression": {
                                "id": 337,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 333,
                                  "name": "ret",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 300,
                                  "src": "2716:3:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "|=",
                                "rightHandSide": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 336,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 334,
                                    "name": "x",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 320,
                                    "src": "2723:1:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "-",
                                  "rightExpression": {
                                    "hexValue": "3438",
                                    "id": 335,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2727:2:0",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_48_by_1",
                                      "typeString": "int_const 48"
                                    },
                                    "value": "48"
                                  },
                                  "src": "2723:6:0",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2716:13:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 338,
                              "nodeType": "ExpressionStatement",
                              "src": "2716:13:0"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 311,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 307,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 304,
                      "src": "2580:1:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 310,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 308,
                        "name": "idx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 278,
                        "src": "2584:3:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "hexValue": "3430",
                        "id": 309,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2590:2:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_40_by_1",
                          "typeString": "int_const 40"
                        },
                        "value": "40"
                      },
                      "src": "2584:8:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2580:12:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 380,
                  "initializationExpression": {
                    "assignments": [
                      304
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 304,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 380,
                        "src": "2566:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 303,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "2566:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 306,
                    "initialValue": {
                      "id": 305,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 278,
                      "src": "2575:3:0",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2566:12:0"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 313,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2594:3:0",
                      "subExpression": {
                        "id": 312,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 304,
                        "src": "2594:1:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 314,
                    "nodeType": "ExpressionStatement",
                    "src": "2594:3:0"
                  },
                  "nodeType": "ForStatement",
                  "src": "2561:411:0"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "arguments": [
                          {
                            "id": 383,
                            "name": "ret",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 300,
                            "src": "2997:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 382,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2989:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 381,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "2989:7:0",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2989:12:0",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "hexValue": "74727565",
                        "id": 385,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3003:4:0",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "id": 386,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "2988:20:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_payable_$_t_bool_$",
                      "typeString": "tuple(address payable,bool)"
                    }
                  },
                  "functionReturnParameters": 284,
                  "id": 387,
                  "nodeType": "Return",
                  "src": "2981:27:0"
                }
              ]
            },
            "id": 389,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hexToAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 279,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 276,
                  "mutability": "mutable",
                  "name": "str",
                  "nodeType": "VariableDeclaration",
                  "scope": 389,
                  "src": "2398:16:0",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 275,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2398:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 278,
                  "mutability": "mutable",
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 389,
                  "src": "2416:8:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 277,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2416:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2397:28:0"
            },
            "returnParameters": {
              "id": 284,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 281,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 389,
                  "src": "2449:7:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 280,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2449:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 283,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 389,
                  "src": "2458:4:0",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 282,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2458:4:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2448:15:0"
            },
            "scope": 390,
            "src": "2376:639:0",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 391,
        "src": "252:2765:0"
      }
    ],
    "src": "0:3018:0"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "/home/arachnid/Dropbox/projects/dnsregistrar/contracts/DNSClaimChecker.sol",
      "exportedSymbols": {
        "Buffer": [
          1452
        ],
        "BytesUtils": [
          2183
        ],
        "DNSClaimChecker": [
          390
        ],
        "DNSSEC": [
          2273
        ],
        "RRUtils": [
          3396
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.7",
            ".0"
          ]
        },
        "id": 1,
        "name": "PragmaDirective",
        "src": "0:23:0"
      },
      {
        "attributes": {
          "SourceUnit": 2274,
          "absolutePath": "@ensdomains/dnssec-oracle/contracts/DNSSEC.sol",
          "file": "@ensdomains/dnssec-oracle/contracts/DNSSEC.sol",
          "scope": 391,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 2,
        "name": "ImportDirective",
        "src": "25:56:0"
      },
      {
        "attributes": {
          "SourceUnit": 2184,
          "absolutePath": "@ensdomains/dnssec-oracle/contracts/BytesUtils.sol",
          "file": "@ensdomains/dnssec-oracle/contracts/BytesUtils.sol",
          "scope": 391,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 3,
        "name": "ImportDirective",
        "src": "82:60:0"
      },
      {
        "attributes": {
          "SourceUnit": 3397,
          "absolutePath": "@ensdomains/dnssec-oracle/contracts/RRUtils.sol",
          "file": "@ensdomains/dnssec-oracle/contracts/RRUtils.sol",
          "scope": 391,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4,
        "name": "ImportDirective",
        "src": "143:57:0"
      },
      {
        "attributes": {
          "SourceUnit": 1453,
          "absolutePath": "@ensdomains/buffer/contracts/Buffer.sol",
          "file": "@ensdomains/buffer/contracts/Buffer.sol",
          "scope": 391,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 5,
        "name": "ImportDirective",
        "src": "201:49:0"
      },
      {
        "attributes": {
          "abstract": false,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "library",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            390
          ],
          "name": "DNSClaimChecker",
          "scope": 391
        },
        "children": [
          {
            "children": [
              {
                "attributes": {
                  "name": "BytesUtils",
                  "referencedDeclaration": 2183,
                  "type": "library BytesUtils"
                },
                "id": 6,
                "name": "UserDefinedTypeName",
                "src": "289:10:0"
              },
              {
                "attributes": {
                  "name": "bytes",
                  "type": "bytes"
                },
                "id": 7,
                "name": "ElementaryTypeName",
                "src": "304:5:0"
              }
            ],
            "id": 8,
            "name": "UsingForDirective",
            "src": "283:27:0"
          },
          {
            "attributes": {},
            "children": [
              {
                "attributes": {
                  "name": "RRUtils",
                  "referencedDeclaration": 3396,
                  "type": "library RRUtils"
                },
                "id": 9,
                "name": "UserDefinedTypeName",
                "src": "321:7:0"
              }
            ],
            "id": 10,
            "name": "UsingForDirective",
            "src": "315:20:0"
          },
          {
            "children": [
              {
                "attributes": {
                  "name": "Buffer",
                  "referencedDeclaration": 1452,
                  "type": "library Buffer"
                },
                "id": 11,
                "name": "UserDefinedTypeName",
                "src": "346:6:0"
              },
              {
                "attributes": {
                  "name": "Buffer.buffer",
                  "referencedDeclaration": 986,
                  "type": "struct Buffer.buffer"
                },
                "id": 12,
                "name": "UserDefinedTypeName",
                "src": "357:13:0"
              }
            ],
            "id": 13,
            "name": "UsingForDirective",
            "src": "340:31:0"
          },
          {
            "attributes": {
              "constant": true,
              "mutability": "constant",
              "name": "CLASS_INET",
              "scope": 390,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint16",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint16",
                  "type": "uint16"
                },
                "id": 14,
                "name": "ElementaryTypeName",
                "src": "377:6:0"
              },
              {
                "attributes": {
                  "hexvalue": "31",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "token": "number",
                  "type": "int_const 1",
                  "value": "1"
                },
                "id": 15,
                "name": "Literal",
                "src": "406:1:0"
              }
            ],
            "id": 16,
            "name": "VariableDeclaration",
            "src": "377:30:0"
          },
          {
            "attributes": {
              "constant": true,
              "mutability": "constant",
              "name": "TYPE_TXT",
              "scope": 390,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint16",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint16",
                  "type": "uint16"
                },
                "id": 17,
                "name": "ElementaryTypeName",
                "src": "413:6:0"
              },
              {
                "attributes": {
                  "hexvalue": "3136",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "token": "number",
                  "type": "int_const 16",
                  "value": "16"
                },
                "id": 18,
                "name": "Literal",
                "src": "440:2:0"
              }
            ],
            "id": 19,
            "name": "VariableDeclaration",
            "src": "413:29:0"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getOwnerAddress",
              "scope": 390,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "oracle",
                      "scope": 166,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract DNSSEC",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "DNSSEC",
                          "referencedDeclaration": 2273,
                          "type": "contract DNSSEC"
                        },
                        "id": 20,
                        "name": "UserDefinedTypeName",
                        "src": "474:6:0"
                      }
                    ],
                    "id": 21,
                    "name": "VariableDeclaration",
                    "src": "474:13:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "name",
                      "scope": 166,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 22,
                        "name": "ElementaryTypeName",
                        "src": "489:5:0"
                      }
                    ],
                    "id": 23,
                    "name": "VariableDeclaration",
                    "src": "489:17:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "proof",
                      "scope": 166,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 24,
                        "name": "ElementaryTypeName",
                        "src": "508:5:0"
                      }
                    ],
                    "id": 25,
                    "name": "VariableDeclaration",
                    "src": "508:18:0"
                  }
                ],
                "id": 26,
                "name": "ParameterList",
                "src": "473:54:0"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 166,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 27,
                        "name": "ElementaryTypeName",
                        "src": "575:7:0"
                      }
                    ],
                    "id": 28,
                    "name": "VariableDeclaration",
                    "src": "575:7:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 166,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 29,
                        "name": "ElementaryTypeName",
                        "src": "584:4:0"
                      }
                    ],
                    "id": 30,
                    "name": "VariableDeclaration",
                    "src": "584:4:0"
                  }
                ],
                "id": 31,
                "name": "ParameterList",
                "src": "574:15:0"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        35
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "buf",
                          "scope": 165,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct Buffer.buffer",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "Buffer.buffer",
                              "referencedDeclaration": 986,
                              "type": "struct Buffer.buffer"
                            },
                            "id": 34,
                            "name": "UserDefinedTypeName",
                            "src": "653:13:0"
                          }
                        ],
                        "id": 35,
                        "name": "VariableDeclaration",
                        "src": "653:24:0"
                      }
                    ],
                    "id": 36,
                    "name": "VariableDeclarationStatement",
                    "src": "653:24:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "struct Buffer.buffer memory",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "init",
                              "referencedDeclaration": 1022,
                              "type": "function (struct Buffer.buffer memory,uint256) pure returns (struct Buffer.buffer memory)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 35,
                                  "type": "struct Buffer.buffer memory",
                                  "value": "buf"
                                },
                                "id": 37,
                                "name": "Identifier",
                                "src": "687:3:0"
                              }
                            ],
                            "id": 39,
                            "name": "MemberAccess",
                            "src": "687:8:0"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "+",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 23,
                                      "type": "bytes memory",
                                      "value": "name"
                                    },
                                    "id": 40,
                                    "name": "Identifier",
                                    "src": "696:4:0"
                                  }
                                ],
                                "id": 41,
                                "name": "MemberAccess",
                                "src": "696:11:0"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "35",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 5",
                                  "value": "5"
                                },
                                "id": 42,
                                "name": "Literal",
                                "src": "710:1:0"
                              }
                            ],
                            "id": 43,
                            "name": "BinaryOperation",
                            "src": "696:15:0"
                          }
                        ],
                        "id": 44,
                        "name": "FunctionCall",
                        "src": "687:25:0"
                      }
                    ],
                    "id": 45,
                    "name": "ExpressionStatement",
                    "src": "687:25:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "struct Buffer.buffer memory",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_f2d0687018fb278ad8ddf1072f709c8ce204add13813ec7180d0d4fbcfb146c0",
                                  "typeString": "literal_string hex\"045f656e73\""
                                }
                              ],
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "append",
                              "referencedDeclaration": 1232,
                              "type": "function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 35,
                                  "type": "struct Buffer.buffer memory",
                                  "value": "buf"
                                },
                                "id": 46,
                                "name": "Identifier",
                                "src": "722:3:0"
                              }
                            ],
                            "id": 48,
                            "name": "MemberAccess",
                            "src": "722:10:0"
                          },
                          {
                            "attributes": {
                              "hexvalue": "045f656e73",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "string",
                              "type": "literal_string hex\"045f656e73\"",
                              "value": "\u0004_ens"
                            },
                            "id": 49,
                            "name": "Literal",
                            "src": "733:10:0"
                          }
                        ],
                        "id": 50,
                        "name": "FunctionCall",
                        "src": "722:22:0"
                      }
                    ],
                    "id": 51,
                    "name": "ExpressionStatement",
                    "src": "722:22:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "struct Buffer.buffer memory",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "append",
                              "referencedDeclaration": 1232,
                              "type": "function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 35,
                                  "type": "struct Buffer.buffer memory",
                                  "value": "buf"
                                },
                                "id": 52,
                                "name": "Identifier",
                                "src": "754:3:0"
                              }
                            ],
                            "id": 54,
                            "name": "MemberAccess",
                            "src": "754:10:0"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 23,
                              "type": "bytes memory",
                              "value": "name"
                            },
                            "id": 55,
                            "name": "Identifier",
                            "src": "765:4:0"
                          }
                        ],
                        "id": 56,
                        "name": "FunctionCall",
                        "src": "754:16:0"
                      }
                    ],
                    "id": 57,
                    "name": "ExpressionStatement",
                    "src": "754:16:0"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        59
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "hash",
                          "scope": 165,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes20",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes20",
                              "type": "bytes20"
                            },
                            "id": 58,
                            "name": "ElementaryTypeName",
                            "src": "780:7:0"
                          }
                        ],
                        "id": 59,
                        "name": "VariableDeclaration",
                        "src": "780:12:0"
                      }
                    ],
                    "id": 60,
                    "name": "VariableDeclarationStatement",
                    "src": "780:12:0"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        62
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "inserted",
                          "scope": 165,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint64",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint64",
                              "type": "uint64"
                            },
                            "id": 61,
                            "name": "ElementaryTypeName",
                            "src": "802:6:0"
                          }
                        ],
                        "id": 62,
                        "name": "VariableDeclaration",
                        "src": "802:15:0"
                      }
                    ],
                    "id": 63,
                    "name": "VariableDeclarationStatement",
                    "src": "802:15:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "components": [
                                null,
                                {
                                  "attributes": {
                                    "overloadedDeclarations": [
                                      null
                                    ],
                                    "referencedDeclaration": 62,
                                    "type": "uint64",
                                    "value": "inserted"
                                  },
                                  "id": 64,
                                  "name": "Identifier",
                                  "src": "904:8:0"
                                },
                                {
                                  "attributes": {
                                    "overloadedDeclarations": [
                                      null
                                    ],
                                    "referencedDeclaration": 59,
                                    "type": "bytes20",
                                    "value": "hash"
                                  },
                                  "id": 65,
                                  "name": "Identifier",
                                  "src": "914:4:0"
                                }
                              ],
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "tuple(,uint64,bytes20)"
                            },
                            "id": 66,
                            "name": "TupleExpression",
                            "src": "901:18:0"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "tuple(uint32,uint64,bytes20)",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint16",
                                      "typeString": "uint16"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "rrdata",
                                  "referencedDeclaration": 2272,
                                  "type": "function (uint16,bytes memory) view external returns (uint32,uint64,bytes20)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 21,
                                      "type": "contract DNSSEC",
                                      "value": "oracle"
                                    },
                                    "id": 67,
                                    "name": "Identifier",
                                    "src": "922:6:0"
                                  }
                                ],
                                "id": 68,
                                "name": "MemberAccess",
                                "src": "922:13:0"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 19,
                                  "type": "uint16",
                                  "value": "TYPE_TXT"
                                },
                                "id": 69,
                                "name": "Identifier",
                                "src": "936:8:0"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "buf",
                                  "referencedDeclaration": 983,
                                  "type": "bytes memory"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 35,
                                      "type": "struct Buffer.buffer memory",
                                      "value": "buf"
                                    },
                                    "id": 70,
                                    "name": "Identifier",
                                    "src": "946:3:0"
                                  }
                                ],
                                "id": 71,
                                "name": "MemberAccess",
                                "src": "946:7:0"
                              }
                            ],
                            "id": 72,
                            "name": "FunctionCall",
                            "src": "922:32:0"
                          }
                        ],
                        "id": 73,
                        "name": "Assignment",
                        "src": "901:53:0"
                      }
                    ],
                    "id": 74,
                    "name": "ExpressionStatement",
                    "src": "901:53:0"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "&&",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_bytes20",
                                "typeString": "bytes20"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 59,
                                  "type": "bytes20",
                                  "value": "hash"
                                },
                                "id": 75,
                                "name": "Identifier",
                                "src": "968:4:0"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "bytes20",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes20)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "bytes20"
                                        },
                                        "id": 76,
                                        "name": "ElementaryTypeName",
                                        "src": "976:7:0"
                                      }
                                    ],
                                    "id": 77,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "976:7:0"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 78,
                                    "name": "Literal",
                                    "src": "984:1:0"
                                  }
                                ],
                                "id": 79,
                                "name": "FunctionCall",
                                "src": "976:10:0"
                              }
                            ],
                            "id": 80,
                            "name": "BinaryOperation",
                            "src": "968:18:0"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 25,
                                      "type": "bytes memory",
                                      "value": "proof"
                                    },
                                    "id": 81,
                                    "name": "Identifier",
                                    "src": "990:5:0"
                                  }
                                ],
                                "id": 82,
                                "name": "MemberAccess",
                                "src": "990:12:0"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 83,
                                "name": "Literal",
                                "src": "1006:1:0"
                              }
                            ],
                            "id": 84,
                            "name": "BinaryOperation",
                            "src": "990:17:0"
                          }
                        ],
                        "id": 85,
                        "name": "BinaryOperation",
                        "src": "968:39:0"
                      },
                      {
                        "attributes": {
                          "functionReturnParameters": 31
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "tuple(address payable,bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "address payable",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "address"
                                        },
                                        "id": 86,
                                        "name": "ElementaryTypeName",
                                        "src": "1017:7:0"
                                      }
                                    ],
                                    "id": 87,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "1017:7:0"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "307830",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0x0"
                                    },
                                    "id": 88,
                                    "name": "Literal",
                                    "src": "1025:3:0"
                                  }
                                ],
                                "id": 89,
                                "name": "FunctionCall",
                                "src": "1017:12:0"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 90,
                                "name": "Literal",
                                "src": "1031:5:0"
                              }
                            ],
                            "id": 91,
                            "name": "TupleExpression",
                            "src": "1016:21:0"
                          }
                        ],
                        "id": 92,
                        "name": "Return",
                        "src": "1009:28:0"
                      }
                    ],
                    "id": 93,
                    "name": "IfStatement",
                    "src": "964:73:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                -18,
                                -18
                              ],
                              "referencedDeclaration": -18,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 94,
                            "name": "Identifier",
                            "src": "1048:7:0"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_bytes20",
                                "typeString": "bytes20"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 59,
                                  "type": "bytes20",
                                  "value": "hash"
                                },
                                "id": 95,
                                "name": "Identifier",
                                "src": "1056:4:0"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "bytes20",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(bytes20)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "bytes20"
                                        },
                                        "id": 96,
                                        "name": "ElementaryTypeName",
                                        "src": "1064:7:0"
                                      }
                                    ],
                                    "id": 97,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "1064:7:0"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "bytes32",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": -8,
                                          "type": "function (bytes memory) pure returns (bytes32)",
                                          "value": "keccak256"
                                        },
                                        "id": 98,
                                        "name": "Identifier",
                                        "src": "1072:9:0"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 25,
                                          "type": "bytes memory",
                                          "value": "proof"
                                        },
                                        "id": 99,
                                        "name": "Identifier",
                                        "src": "1082:5:0"
                                      }
                                    ],
                                    "id": 100,
                                    "name": "FunctionCall",
                                    "src": "1072:16:0"
                                  }
                                ],
                                "id": 101,
                                "name": "FunctionCall",
                                "src": "1064:25:0"
                              }
                            ],
                            "id": 102,
                            "name": "BinaryOperation",
                            "src": "1056:33:0"
                          }
                        ],
                        "id": 103,
                        "name": "FunctionCall",
                        "src": "1048:42:0"
                      }
                    ],
                    "id": 104,
                    "name": "ExpressionStatement",
                    "src": "1048:42:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            108
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "mutability": "mutable",
                              "name": "iter",
                              "scope": 157,
                              "stateVariable": false,
                              "storageLocation": "memory",
                              "type": "struct RRUtils.RRIterator",
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "RRUtils.RRIterator",
                                  "referencedDeclaration": 2579,
                                  "type": "struct RRUtils.RRIterator"
                                },
                                "id": 107,
                                "name": "UserDefinedTypeName",
                                "src": "1106:18:0"
                              }
                            ],
                            "id": 108,
                            "name": "VariableDeclaration",
                            "src": "1106:30:0"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "struct RRUtils.RRIterator memory",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "iterateRRs",
                                  "referencedDeclaration": 2606,
                                  "type": "function (bytes memory,uint256) pure returns (struct RRUtils.RRIterator memory)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 25,
                                      "type": "bytes memory",
                                      "value": "proof"
                                    },
                                    "id": 109,
                                    "name": "Identifier",
                                    "src": "1139:5:0"
                                  }
                                ],
                                "id": 110,
                                "name": "MemberAccess",
                                "src": "1139:16:0"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 111,
                                "name": "Literal",
                                "src": "1156:1:0"
                              }
                            ],
                            "id": 112,
                            "name": "FunctionCall",
                            "src": "1139:19:0"
                          }
                        ],
                        "id": 113,
                        "name": "VariableDeclarationStatement",
                        "src": "1106:52:0"
                      },
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!",
                          "prefix": true,
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "bool",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "done",
                                  "referencedDeclaration": 2622,
                                  "type": "function (struct RRUtils.RRIterator memory) pure returns (bool)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 108,
                                      "type": "struct RRUtils.RRIterator memory",
                                      "value": "iter"
                                    },
                                    "id": 114,
                                    "name": "Identifier",
                                    "src": "1161:4:0"
                                  }
                                ],
                                "id": 115,
                                "name": "MemberAccess",
                                "src": "1161:9:0"
                              }
                            ],
                            "id": 116,
                            "name": "FunctionCall",
                            "src": "1161:11:0"
                          }
                        ],
                        "id": 117,
                        "name": "UnaryOperation",
                        "src": "1160:12:0"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "tuple()",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "next",
                                  "referencedDeclaration": 2725,
                                  "type": "function (struct RRUtils.RRIterator memory) pure"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 108,
                                      "type": "struct RRUtils.RRIterator memory",
                                      "value": "iter"
                                    },
                                    "id": 118,
                                    "name": "Identifier",
                                    "src": "1174:4:0"
                                  }
                                ],
                                "id": 119,
                                "name": "MemberAccess",
                                "src": "1174:9:0"
                              }
                            ],
                            "id": 120,
                            "name": "FunctionCall",
                            "src": "1174:11:0"
                          }
                        ],
                        "id": 121,
                        "name": "ExpressionStatement",
                        "src": "1174:11:0"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        },
                                        {
                                          "typeIdentifier": "t_stringliteral_729e95952dd1843156517c8fdb21573009879ace602692e2f8274dcffa8c341b",
                                          "typeString": "literal_string \"DNS record is stale; refresh or delete it before proceeding.\""
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        -18,
                                        -18
                                      ],
                                      "referencedDeclaration": -18,
                                      "type": "function (bool,string memory) pure",
                                      "value": "require"
                                    },
                                    "id": 122,
                                    "name": "Identifier",
                                    "src": "1201:7:0"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint64",
                                            "typeString": "uint64"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "+",
                                          "type": "uint64"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 62,
                                              "type": "uint64",
                                              "value": "inserted"
                                            },
                                            "id": 123,
                                            "name": "Identifier",
                                            "src": "1209:8:0"
                                          },
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "ttl",
                                              "referencedDeclaration": 2574,
                                              "type": "uint32"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 108,
                                                  "type": "struct RRUtils.RRIterator memory",
                                                  "value": "iter"
                                                },
                                                "id": 124,
                                                "name": "Identifier",
                                                "src": "1220:4:0"
                                              }
                                            ],
                                            "id": 125,
                                            "name": "MemberAccess",
                                            "src": "1220:8:0"
                                          }
                                        ],
                                        "id": 126,
                                        "name": "BinaryOperation",
                                        "src": "1209:19:0"
                                      },
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "timestamp",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": -4,
                                              "type": "block",
                                              "value": "block"
                                            },
                                            "id": 127,
                                            "name": "Identifier",
                                            "src": "1232:5:0"
                                          }
                                        ],
                                        "id": 128,
                                        "name": "MemberAccess",
                                        "src": "1232:15:0"
                                      }
                                    ],
                                    "id": 129,
                                    "name": "BinaryOperation",
                                    "src": "1209:38:0"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "444e53207265636f7264206973207374616c653b2072656672657368206f722064656c657465206974206265666f72652070726f63656564696e672e",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "string",
                                      "type": "literal_string \"DNS record is stale; refresh or delete it before proceeding.\"",
                                      "value": "DNS record is stale; refresh or delete it before proceeding."
                                    },
                                    "id": 130,
                                    "name": "Literal",
                                    "src": "1249:62:0"
                                  }
                                ],
                                "id": 131,
                                "name": "FunctionCall",
                                "src": "1201:111:0"
                              }
                            ],
                            "id": 132,
                            "name": "ExpressionStatement",
                            "src": "1201:111:0"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                134
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "found",
                                  "scope": 156,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "bool",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "bool",
                                      "type": "bool"
                                    },
                                    "id": 133,
                                    "name": "ElementaryTypeName",
                                    "src": "1327:4:0"
                                  }
                                ],
                                "id": 134,
                                "name": "VariableDeclaration",
                                "src": "1327:10:0"
                              }
                            ],
                            "id": 135,
                            "name": "VariableDeclarationStatement",
                            "src": "1327:10:0"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                137
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "addr",
                                  "scope": 156,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "address",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "address",
                                      "stateMutability": "nonpayable",
                                      "type": "address"
                                    },
                                    "id": 136,
                                    "name": "ElementaryTypeName",
                                    "src": "1351:7:0"
                                  }
                                ],
                                "id": 137,
                                "name": "VariableDeclaration",
                                "src": "1351:12:0"
                              }
                            ],
                            "id": 138,
                            "name": "VariableDeclarationStatement",
                            "src": "1351:12:0"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "tuple()"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "tuple(address,bool)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 137,
                                          "type": "address",
                                          "value": "addr"
                                        },
                                        "id": 139,
                                        "name": "Identifier",
                                        "src": "1378:4:0"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 134,
                                          "type": "bool",
                                          "value": "found"
                                        },
                                        "id": 140,
                                        "name": "Identifier",
                                        "src": "1384:5:0"
                                      }
                                    ],
                                    "id": 141,
                                    "name": "TupleExpression",
                                    "src": "1377:13:0"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "tuple(address,bool)",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 228,
                                          "type": "function (bytes memory,uint256) pure returns (address,bool)",
                                          "value": "parseRR"
                                        },
                                        "id": 142,
                                        "name": "Identifier",
                                        "src": "1393:7:0"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 25,
                                          "type": "bytes memory",
                                          "value": "proof"
                                        },
                                        "id": 143,
                                        "name": "Identifier",
                                        "src": "1401:5:0"
                                      },
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "rdataOffset",
                                          "referencedDeclaration": 2576,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 108,
                                              "type": "struct RRUtils.RRIterator memory",
                                              "value": "iter"
                                            },
                                            "id": 144,
                                            "name": "Identifier",
                                            "src": "1408:4:0"
                                          }
                                        ],
                                        "id": 145,
                                        "name": "MemberAccess",
                                        "src": "1408:16:0"
                                      }
                                    ],
                                    "id": 146,
                                    "name": "FunctionCall",
                                    "src": "1393:32:0"
                                  }
                                ],
                                "id": 147,
                                "name": "Assignment",
                                "src": "1377:48:0"
                              }
                            ],
                            "id": 148,
                            "name": "ExpressionStatement",
                            "src": "1377:48:0"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 134,
                                  "type": "bool",
                                  "value": "found"
                                },
                                "id": 149,
                                "name": "Identifier",
                                "src": "1443:5:0"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "functionReturnParameters": 31
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isInlineArray": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "tuple(address,bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 137,
                                              "type": "address",
                                              "value": "addr"
                                            },
                                            "id": 150,
                                            "name": "Identifier",
                                            "src": "1476:4:0"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "74727565",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "bool",
                                              "type": "bool",
                                              "value": "true"
                                            },
                                            "id": 151,
                                            "name": "Literal",
                                            "src": "1482:4:0"
                                          }
                                        ],
                                        "id": 152,
                                        "name": "TupleExpression",
                                        "src": "1475:12:0"
                                      }
                                    ],
                                    "id": 153,
                                    "name": "Return",
                                    "src": "1468:19:0"
                                  }
                                ],
                                "id": 154,
                                "name": "Block",
                                "src": "1450:52:0"
                              }
                            ],
                            "id": 155,
                            "name": "IfStatement",
                            "src": "1439:63:0"
                          }
                        ],
                        "id": 156,
                        "name": "Block",
                        "src": "1187:325:0"
                      }
                    ],
                    "id": 157,
                    "name": "ForStatement",
                    "src": "1101:411:0"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 31
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "type": "tuple(address payable,bool)"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "address payable",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "address"
                                    },
                                    "id": 158,
                                    "name": "ElementaryTypeName",
                                    "src": "1530:7:0"
                                  }
                                ],
                                "id": 159,
                                "name": "ElementaryTypeNameExpression",
                                "src": "1530:7:0"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307830",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0x0"
                                },
                                "id": 160,
                                "name": "Literal",
                                "src": "1538:3:0"
                              }
                            ],
                            "id": 161,
                            "name": "FunctionCall",
                            "src": "1530:12:0"
                          },
                          {
                            "attributes": {
                              "hexvalue": "66616c7365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "bool",
                              "type": "bool",
                              "value": "false"
                            },
                            "id": 162,
                            "name": "Literal",
                            "src": "1544:5:0"
                          }
                        ],
                        "id": 163,
                        "name": "TupleExpression",
                        "src": "1529:21:0"
                      }
                    ],
                    "id": 164,
                    "name": "Return",
                    "src": "1522:28:0"
                  }
                ],
                "id": 165,
                "name": "Block",
                "src": "594:963:0"
              }
            ],
            "id": 166,
            "name": "FunctionDefinition",
            "src": "449:1108:0"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "parseRR",
              "scope": 390,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "rdata",
                      "scope": 228,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 167,
                        "name": "ElementaryTypeName",
                        "src": "1580:5:0"
                      }
                    ],
                    "id": 168,
                    "name": "VariableDeclaration",
                    "src": "1580:18:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "idx",
                      "scope": 228,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 169,
                        "name": "ElementaryTypeName",
                        "src": "1600:4:0"
                      }
                    ],
                    "id": 170,
                    "name": "VariableDeclaration",
                    "src": "1600:8:0"
                  }
                ],
                "id": 171,
                "name": "ParameterList",
                "src": "1579:30:0"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 228,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 172,
                        "name": "ElementaryTypeName",
                        "src": "1633:7:0"
                      }
                    ],
                    "id": 173,
                    "name": "VariableDeclaration",
                    "src": "1633:7:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 228,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 174,
                        "name": "ElementaryTypeName",
                        "src": "1642:4:0"
                      }
                    ],
                    "id": 175,
                    "name": "VariableDeclaration",
                    "src": "1642:4:0"
                  }
                ],
                "id": 176,
                "name": "ParameterList",
                "src": "1632:15:0"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 170,
                              "type": "uint256",
                              "value": "idx"
                            },
                            "id": 177,
                            "name": "Identifier",
                            "src": "1665:3:0"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 168,
                                  "type": "bytes memory",
                                  "value": "rdata"
                                },
                                "id": 178,
                                "name": "Identifier",
                                "src": "1671:5:0"
                              }
                            ],
                            "id": 179,
                            "name": "MemberAccess",
                            "src": "1671:12:0"
                          }
                        ],
                        "id": 180,
                        "name": "BinaryOperation",
                        "src": "1665:18:0"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                182
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "len",
                                  "scope": 218,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint",
                                      "type": "uint256"
                                    },
                                    "id": 181,
                                    "name": "ElementaryTypeName",
                                    "src": "1699:4:0"
                                  }
                                ],
                                "id": 182,
                                "name": "VariableDeclaration",
                                "src": "1699:8:0"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "uint8",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "readUint8",
                                      "referencedDeclaration": 1764,
                                      "type": "function (bytes memory,uint256) pure returns (uint8)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 168,
                                          "type": "bytes memory",
                                          "value": "rdata"
                                        },
                                        "id": 183,
                                        "name": "Identifier",
                                        "src": "1710:5:0"
                                      }
                                    ],
                                    "id": 184,
                                    "name": "MemberAccess",
                                    "src": "1710:15:0"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 170,
                                      "type": "uint256",
                                      "value": "idx"
                                    },
                                    "id": 185,
                                    "name": "Identifier",
                                    "src": "1726:3:0"
                                  }
                                ],
                                "id": 186,
                                "name": "FunctionCall",
                                "src": "1710:20:0"
                              }
                            ],
                            "id": 187,
                            "name": "VariableDeclarationStatement",
                            "src": "1699:31:0"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "+=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 170,
                                      "type": "uint256",
                                      "value": "idx"
                                    },
                                    "id": 188,
                                    "name": "Identifier",
                                    "src": "1732:3:0"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 189,
                                    "name": "Literal",
                                    "src": "1739:1:0"
                                  }
                                ],
                                "id": 190,
                                "name": "Assignment",
                                "src": "1732:8:0"
                              }
                            ],
                            "id": 191,
                            "name": "ExpressionStatement",
                            "src": "1732:8:0"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                193
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "found",
                                  "scope": 218,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "bool",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "bool",
                                      "type": "bool"
                                    },
                                    "id": 192,
                                    "name": "ElementaryTypeName",
                                    "src": "1755:4:0"
                                  }
                                ],
                                "id": 193,
                                "name": "VariableDeclaration",
                                "src": "1755:10:0"
                              }
                            ],
                            "id": 194,
                            "name": "VariableDeclarationStatement",
                            "src": "1755:10:0"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                196
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "addr",
                                  "scope": 218,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "address",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "address",
                                      "stateMutability": "nonpayable",
                                      "type": "address"
                                    },
                                    "id": 195,
                                    "name": "ElementaryTypeName",
                                    "src": "1779:7:0"
                                  }
                                ],
                                "id": 196,
                                "name": "VariableDeclaration",
                                "src": "1779:12:0"
                              }
                            ],
                            "id": 197,
                            "name": "VariableDeclarationStatement",
                            "src": "1779:12:0"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "tuple()"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "tuple(address,bool)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 196,
                                          "type": "address",
                                          "value": "addr"
                                        },
                                        "id": 198,
                                        "name": "Identifier",
                                        "src": "1806:4:0"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 193,
                                          "type": "bool",
                                          "value": "found"
                                        },
                                        "id": 199,
                                        "name": "Identifier",
                                        "src": "1812:5:0"
                                      }
                                    ],
                                    "id": 200,
                                    "name": "TupleExpression",
                                    "src": "1805:13:0"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "tuple(address,bool)",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 274,
                                          "type": "function (bytes memory,uint256,uint256) pure returns (address,bool)",
                                          "value": "parseString"
                                        },
                                        "id": 201,
                                        "name": "Identifier",
                                        "src": "1821:11:0"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 168,
                                          "type": "bytes memory",
                                          "value": "rdata"
                                        },
                                        "id": 202,
                                        "name": "Identifier",
                                        "src": "1833:5:0"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 170,
                                          "type": "uint256",
                                          "value": "idx"
                                        },
                                        "id": 203,
                                        "name": "Identifier",
                                        "src": "1840:3:0"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 182,
                                          "type": "uint256",
                                          "value": "len"
                                        },
                                        "id": 204,
                                        "name": "Identifier",
                                        "src": "1845:3:0"
                                      }
                                    ],
                                    "id": 205,
                                    "name": "FunctionCall",
                                    "src": "1821:28:0"
                                  }
                                ],
                                "id": 206,
                                "name": "Assignment",
                                "src": "1805:44:0"
                              }
                            ],
                            "id": 207,
                            "name": "ExpressionStatement",
                            "src": "1805:44:0"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 193,
                                  "type": "bool",
                                  "value": "found"
                                },
                                "id": 208,
                                "name": "Identifier",
                                "src": "1868:5:0"
                              },
                              {
                                "attributes": {
                                  "functionReturnParameters": 176
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "tuple(address,bool)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 196,
                                          "type": "address",
                                          "value": "addr"
                                        },
                                        "id": 209,
                                        "name": "Identifier",
                                        "src": "1883:4:0"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "74727565",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "bool",
                                          "type": "bool",
                                          "value": "true"
                                        },
                                        "id": 210,
                                        "name": "Literal",
                                        "src": "1889:4:0"
                                      }
                                    ],
                                    "id": 211,
                                    "name": "TupleExpression",
                                    "src": "1882:12:0"
                                  }
                                ],
                                "id": 212,
                                "name": "Return",
                                "src": "1875:19:0"
                              }
                            ],
                            "id": 213,
                            "name": "IfStatement",
                            "src": "1864:30:0"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "+=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 170,
                                      "type": "uint256",
                                      "value": "idx"
                                    },
                                    "id": 214,
                                    "name": "Identifier",
                                    "src": "1908:3:0"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 182,
                                      "type": "uint256",
                                      "value": "len"
                                    },
                                    "id": 215,
                                    "name": "Identifier",
                                    "src": "1915:3:0"
                                  }
                                ],
                                "id": 216,
                                "name": "Assignment",
                                "src": "1908:10:0"
                              }
                            ],
                            "id": 217,
                            "name": "ExpressionStatement",
                            "src": "1908:10:0"
                          }
                        ],
                        "id": 218,
                        "name": "Block",
                        "src": "1685:244:0"
                      }
                    ],
                    "id": 219,
                    "name": "WhileStatement",
                    "src": "1658:271:0"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 176
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "type": "tuple(address payable,bool)"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "address payable",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "address"
                                    },
                                    "id": 220,
                                    "name": "ElementaryTypeName",
                                    "src": "1947:7:0"
                                  }
                                ],
                                "id": 221,
                                "name": "ElementaryTypeNameExpression",
                                "src": "1947:7:0"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307830",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0x0"
                                },
                                "id": 222,
                                "name": "Literal",
                                "src": "1955:3:0"
                              }
                            ],
                            "id": 223,
                            "name": "FunctionCall",
                            "src": "1947:12:0"
                          },
                          {
                            "attributes": {
                              "hexvalue": "66616c7365",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "bool",
                              "type": "bool",
                              "value": "false"
                            },
                            "id": 224,
                            "name": "Literal",
                            "src": "1961:5:0"
                          }
                        ],
                        "id": 225,
                        "name": "TupleExpression",
                        "src": "1946:21:0"
                      }
                    ],
                    "id": 226,
                    "name": "Return",
                    "src": "1939:28:0"
                  }
                ],
                "id": 227,
                "name": "Block",
                "src": "1648:326:0"
              }
            ],
            "id": 228,
            "name": "FunctionDefinition",
            "src": "1563:411:0"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "parseString",
              "scope": 390,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "str",
                      "scope": 274,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 229,
                        "name": "ElementaryTypeName",
                        "src": "2001:5:0"
                      }
                    ],
                    "id": 230,
                    "name": "VariableDeclaration",
                    "src": "2001:16:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "idx",
                      "scope": 274,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 231,
                        "name": "ElementaryTypeName",
                        "src": "2019:4:0"
                      }
                    ],
                    "id": 232,
                    "name": "VariableDeclaration",
                    "src": "2019:8:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "len",
                      "scope": 274,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 233,
                        "name": "ElementaryTypeName",
                        "src": "2029:4:0"
                      }
                    ],
                    "id": 234,
                    "name": "VariableDeclaration",
                    "src": "2029:8:0"
                  }
                ],
                "id": 235,
                "name": "ParameterList",
                "src": "2000:38:0"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 274,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 236,
                        "name": "ElementaryTypeName",
                        "src": "2062:7:0"
                      }
                    ],
                    "id": 237,
                    "name": "VariableDeclaration",
                    "src": "2062:7:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 274,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 238,
                        "name": "ElementaryTypeName",
                        "src": "2071:4:0"
                      }
                    ],
                    "id": 239,
                    "name": "VariableDeclaration",
                    "src": "2071:4:0"
                  }
                ],
                "id": 240,
                "name": "ParameterList",
                "src": "2061:15:0"
              },
              {
                "children": [
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "uint32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "readUint32",
                                  "referencedDeclaration": 1804,
                                  "type": "function (bytes memory,uint256) pure returns (uint32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 230,
                                      "type": "bytes memory",
                                      "value": "str"
                                    },
                                    "id": 241,
                                    "name": "Identifier",
                                    "src": "2181:3:0"
                                  }
                                ],
                                "id": 242,
                                "name": "MemberAccess",
                                "src": "2181:14:0"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 232,
                                  "type": "uint256",
                                  "value": "idx"
                                },
                                "id": 243,
                                "name": "Identifier",
                                "src": "2196:3:0"
                              }
                            ],
                            "id": 244,
                            "name": "FunctionCall",
                            "src": "2181:19:0"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30783631336433303738",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 1631400056",
                              "value": "0x613d3078"
                            },
                            "id": 245,
                            "name": "Literal",
                            "src": "2204:10:0"
                          }
                        ],
                        "id": 246,
                        "name": "BinaryOperation",
                        "src": "2181:33:0"
                      },
                      {
                        "attributes": {
                          "functionReturnParameters": 240
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "tuple(address payable,bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "address payable",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "address"
                                        },
                                        "id": 247,
                                        "name": "ElementaryTypeName",
                                        "src": "2224:7:0"
                                      }
                                    ],
                                    "id": 248,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "2224:7:0"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "307830",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0x0"
                                    },
                                    "id": 249,
                                    "name": "Literal",
                                    "src": "2232:3:0"
                                  }
                                ],
                                "id": 250,
                                "name": "FunctionCall",
                                "src": "2224:12:0"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 251,
                                "name": "Literal",
                                "src": "2238:5:0"
                              }
                            ],
                            "id": 252,
                            "name": "TupleExpression",
                            "src": "2223:21:0"
                          }
                        ],
                        "id": 253,
                        "name": "Return",
                        "src": "2216:28:0"
                      }
                    ],
                    "id": 254,
                    "name": "IfStatement",
                    "src": "2177:67:0"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 234,
                              "type": "uint256",
                              "value": "len"
                            },
                            "id": 255,
                            "name": "Identifier",
                            "src": "2282:3:0"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3434",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 44",
                              "value": "44"
                            },
                            "id": 256,
                            "name": "Literal",
                            "src": "2288:2:0"
                          }
                        ],
                        "id": 257,
                        "name": "BinaryOperation",
                        "src": "2282:8:0"
                      },
                      {
                        "attributes": {
                          "functionReturnParameters": 240
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "tuple(address payable,bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "address payable",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "address"
                                        },
                                        "id": 258,
                                        "name": "ElementaryTypeName",
                                        "src": "2300:7:0"
                                      }
                                    ],
                                    "id": 259,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "2300:7:0"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "307830",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0x0"
                                    },
                                    "id": 260,
                                    "name": "Literal",
                                    "src": "2308:3:0"
                                  }
                                ],
                                "id": 261,
                                "name": "FunctionCall",
                                "src": "2300:12:0"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 262,
                                "name": "Literal",
                                "src": "2314:5:0"
                              }
                            ],
                            "id": 263,
                            "name": "TupleExpression",
                            "src": "2299:21:0"
                          }
                        ],
                        "id": 264,
                        "name": "Return",
                        "src": "2292:28:0"
                      }
                    ],
                    "id": 265,
                    "name": "IfStatement",
                    "src": "2278:42:0"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 240
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple(address,bool)",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 389,
                              "type": "function (bytes memory,uint256) pure returns (address,bool)",
                              "value": "hexToAddress"
                            },
                            "id": 266,
                            "name": "Identifier",
                            "src": "2337:12:0"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 230,
                              "type": "bytes memory",
                              "value": "str"
                            },
                            "id": 267,
                            "name": "Identifier",
                            "src": "2350:3:0"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "+",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 232,
                                  "type": "uint256",
                                  "value": "idx"
                                },
                                "id": 268,
                                "name": "Identifier",
                                "src": "2355:3:0"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "34",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 4",
                                  "value": "4"
                                },
                                "id": 269,
                                "name": "Literal",
                                "src": "2361:1:0"
                              }
                            ],
                            "id": 270,
                            "name": "BinaryOperation",
                            "src": "2355:7:0"
                          }
                        ],
                        "id": 271,
                        "name": "FunctionCall",
                        "src": "2337:26:0"
                      }
                    ],
                    "id": 272,
                    "name": "Return",
                    "src": "2330:33:0"
                  }
                ],
                "id": 273,
                "name": "Block",
                "src": "2077:293:0"
              }
            ],
            "id": 274,
            "name": "FunctionDefinition",
            "src": "1980:390:0"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "hexToAddress",
              "scope": 390,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "str",
                      "scope": 389,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 275,
                        "name": "ElementaryTypeName",
                        "src": "2398:5:0"
                      }
                    ],
                    "id": 276,
                    "name": "VariableDeclaration",
                    "src": "2398:16:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "idx",
                      "scope": 389,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 277,
                        "name": "ElementaryTypeName",
                        "src": "2416:4:0"
                      }
                    ],
                    "id": 278,
                    "name": "VariableDeclaration",
                    "src": "2416:8:0"
                  }
                ],
                "id": 279,
                "name": "ParameterList",
                "src": "2397:28:0"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 389,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 280,
                        "name": "ElementaryTypeName",
                        "src": "2449:7:0"
                      }
                    ],
                    "id": 281,
                    "name": "VariableDeclaration",
                    "src": "2449:7:0"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 389,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 282,
                        "name": "ElementaryTypeName",
                        "src": "2458:4:0"
                      }
                    ],
                    "id": 283,
                    "name": "VariableDeclaration",
                    "src": "2458:4:0"
                  }
                ],
                "id": 284,
                "name": "ParameterList",
                "src": "2448:15:0"
              },
              {
                "children": [
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "-",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 276,
                                      "type": "bytes memory",
                                      "value": "str"
                                    },
                                    "id": 285,
                                    "name": "Identifier",
                                    "src": "2478:3:0"
                                  }
                                ],
                                "id": 286,
                                "name": "MemberAccess",
                                "src": "2478:10:0"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 278,
                                  "type": "uint256",
                                  "value": "idx"
                                },
                                "id": 287,
                                "name": "Identifier",
                                "src": "2491:3:0"
                              }
                            ],
                            "id": 288,
                            "name": "BinaryOperation",
                            "src": "2478:16:0"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3430",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 40",
                              "value": "40"
                            },
                            "id": 289,
                            "name": "Literal",
                            "src": "2497:2:0"
                          }
                        ],
                        "id": 290,
                        "name": "BinaryOperation",
                        "src": "2478:21:0"
                      },
                      {
                        "attributes": {
                          "functionReturnParameters": 284
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "tuple(address payable,bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "address payable",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "address"
                                        },
                                        "id": 291,
                                        "name": "ElementaryTypeName",
                                        "src": "2509:7:0"
                                      }
                                    ],
                                    "id": 292,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "2509:7:0"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "307830",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0x0"
                                    },
                                    "id": 293,
                                    "name": "Literal",
                                    "src": "2517:3:0"
                                  }
                                ],
                                "id": 294,
                                "name": "FunctionCall",
                                "src": "2509:12:0"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 295,
                                "name": "Literal",
                                "src": "2523:5:0"
                              }
                            ],
                            "id": 296,
                            "name": "TupleExpression",
                            "src": "2508:21:0"
                          }
                        ],
                        "id": 297,
                        "name": "Return",
                        "src": "2501:28:0"
                      }
                    ],
                    "id": 298,
                    "name": "IfStatement",
                    "src": "2474:55:0"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        300
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "ret",
                          "scope": 388,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 299,
                            "name": "ElementaryTypeName",
                            "src": "2539:4:0"
                          }
                        ],
                        "id": 300,
                        "name": "VariableDeclaration",
                        "src": "2539:8:0"
                      },
                      {
                        "attributes": {
                          "hexvalue": "30",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "token": "number",
                          "type": "int_const 0",
                          "value": "0"
                        },
                        "id": 301,
                        "name": "Literal",
                        "src": "2550:1:0"
                      }
                    ],
                    "id": 302,
                    "name": "VariableDeclarationStatement",
                    "src": "2539:12:0"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            304
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "mutability": "mutable",
                              "name": "i",
                              "scope": 380,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint",
                                  "type": "uint256"
                                },
                                "id": 303,
                                "name": "ElementaryTypeName",
                                "src": "2566:4:0"
                              }
                            ],
                            "id": 304,
                            "name": "VariableDeclaration",
                            "src": "2566:6:0"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 278,
                              "type": "uint256",
                              "value": "idx"
                            },
                            "id": 305,
                            "name": "Identifier",
                            "src": "2575:3:0"
                          }
                        ],
                        "id": 306,
                        "name": "VariableDeclarationStatement",
                        "src": "2566:12:0"
                      },
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 304,
                              "type": "uint256",
                              "value": "i"
                            },
                            "id": 307,
                            "name": "Identifier",
                            "src": "2580:1:0"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "+",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 278,
                                  "type": "uint256",
                                  "value": "idx"
                                },
                                "id": 308,
                                "name": "Identifier",
                                "src": "2584:3:0"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3430",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 40",
                                  "value": "40"
                                },
                                "id": 309,
                                "name": "Literal",
                                "src": "2590:2:0"
                              }
                            ],
                            "id": 310,
                            "name": "BinaryOperation",
                            "src": "2584:8:0"
                          }
                        ],
                        "id": 311,
                        "name": "BinaryOperation",
                        "src": "2580:12:0"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 304,
                                  "type": "uint256",
                                  "value": "i"
                                },
                                "id": 312,
                                "name": "Identifier",
                                "src": "2594:1:0"
                              }
                            ],
                            "id": 313,
                            "name": "UnaryOperation",
                            "src": "2594:3:0"
                          }
                        ],
                        "id": 314,
                        "name": "ExpressionStatement",
                        "src": "2594:3:0"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<<=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 300,
                                      "type": "uint256",
                                      "value": "ret"
                                    },
                                    "id": 315,
                                    "name": "Identifier",
                                    "src": "2613:3:0"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "34",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 4",
                                      "value": "4"
                                    },
                                    "id": 316,
                                    "name": "Literal",
                                    "src": "2621:1:0"
                                  }
                                ],
                                "id": 317,
                                "name": "Assignment",
                                "src": "2613:9:0"
                              }
                            ],
                            "id": 318,
                            "name": "ExpressionStatement",
                            "src": "2613:9:0"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                320
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "x",
                                  "scope": 379,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint",
                                      "type": "uint256"
                                    },
                                    "id": 319,
                                    "name": "ElementaryTypeName",
                                    "src": "2636:4:0"
                                  }
                                ],
                                "id": 320,
                                "name": "VariableDeclaration",
                                "src": "2636:6:0"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "uint8",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "readUint8",
                                      "referencedDeclaration": 1764,
                                      "type": "function (bytes memory,uint256) pure returns (uint8)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 276,
                                          "type": "bytes memory",
                                          "value": "str"
                                        },
                                        "id": 321,
                                        "name": "Identifier",
                                        "src": "2645:3:0"
                                      }
                                    ],
                                    "id": 322,
                                    "name": "MemberAccess",
                                    "src": "2645:13:0"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 304,
                                      "type": "uint256",
                                      "value": "i"
                                    },
                                    "id": 323,
                                    "name": "Identifier",
                                    "src": "2659:1:0"
                                  }
                                ],
                                "id": 324,
                                "name": "FunctionCall",
                                "src": "2645:16:0"
                              }
                            ],
                            "id": 325,
                            "name": "VariableDeclarationStatement",
                            "src": "2636:25:0"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&&",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 320,
                                          "type": "uint256",
                                          "value": "x"
                                        },
                                        "id": 326,
                                        "name": "Identifier",
                                        "src": "2679:1:0"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3438",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 48",
                                          "value": "48"
                                        },
                                        "id": 327,
                                        "name": "Literal",
                                        "src": "2684:2:0"
                                      }
                                    ],
                                    "id": 328,
                                    "name": "BinaryOperation",
                                    "src": "2679:7:0"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "<",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 320,
                                          "type": "uint256",
                                          "value": "x"
                                        },
                                        "id": 329,
                                        "name": "Identifier",
                                        "src": "2690:1:0"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3538",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 58",
                                          "value": "58"
                                        },
                                        "id": 330,
                                        "name": "Literal",
                                        "src": "2694:2:0"
                                      }
                                    ],
                                    "id": 331,
                                    "name": "BinaryOperation",
                                    "src": "2690:6:0"
                                  }
                                ],
                                "id": 332,
                                "name": "BinaryOperation",
                                "src": "2679:17:0"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "|=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 300,
                                              "type": "uint256",
                                              "value": "ret"
                                            },
                                            "id": 333,
                                            "name": "Identifier",
                                            "src": "2716:3:0"
                                          },
                                          {
                                            "attributes": {
                                              "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "-",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 320,
                                                  "type": "uint256",
                                                  "value": "x"
                                                },
                                                "id": 334,
                                                "name": "Identifier",
                                                "src": "2723:1:0"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "3438",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 48",
                                                  "value": "48"
                                                },
                                                "id": 335,
                                                "name": "Literal",
                                                "src": "2727:2:0"
                                              }
                                            ],
                                            "id": 336,
                                            "name": "BinaryOperation",
                                            "src": "2723:6:0"
                                          }
                                        ],
                                        "id": 337,
                                        "name": "Assignment",
                                        "src": "2716:13:0"
                                      }
                                    ],
                                    "id": 338,
                                    "name": "ExpressionStatement",
                                    "src": "2716:13:0"
                                  }
                                ],
                                "id": 339,
                                "name": "Block",
                                "src": "2698:46:0"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "&&",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">=",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 320,
                                              "type": "uint256",
                                              "value": "x"
                                            },
                                            "id": 340,
                                            "name": "Identifier",
                                            "src": "2754:1:0"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3635",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 65",
                                              "value": "65"
                                            },
                                            "id": 341,
                                            "name": "Literal",
                                            "src": "2759:2:0"
                                          }
                                        ],
                                        "id": 342,
                                        "name": "BinaryOperation",
                                        "src": "2754:7:0"
                                      },
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 320,
                                              "type": "uint256",
                                              "value": "x"
                                            },
                                            "id": 343,
                                            "name": "Identifier",
                                            "src": "2765:1:0"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3731",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 71",
                                              "value": "71"
                                            },
                                            "id": 344,
                                            "name": "Literal",
                                            "src": "2769:2:0"
                                          }
                                        ],
                                        "id": 345,
                                        "name": "BinaryOperation",
                                        "src": "2765:6:0"
                                      }
                                    ],
                                    "id": 346,
                                    "name": "BinaryOperation",
                                    "src": "2754:17:0"
                                  },
                                  {
                                    "children": [
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "|=",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 300,
                                                  "type": "uint256",
                                                  "value": "ret"
                                                },
                                                "id": 347,
                                                "name": "Identifier",
                                                "src": "2791:3:0"
                                              },
                                              {
                                                "attributes": {
                                                  "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "-",
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 320,
                                                      "type": "uint256",
                                                      "value": "x"
                                                    },
                                                    "id": 348,
                                                    "name": "Identifier",
                                                    "src": "2798:1:0"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "hexvalue": "3535",
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": true,
                                                      "lValueRequested": false,
                                                      "token": "number",
                                                      "type": "int_const 55",
                                                      "value": "55"
                                                    },
                                                    "id": 349,
                                                    "name": "Literal",
                                                    "src": "2802:2:0"
                                                  }
                                                ],
                                                "id": 350,
                                                "name": "BinaryOperation",
                                                "src": "2798:6:0"
                                              }
                                            ],
                                            "id": 351,
                                            "name": "Assignment",
                                            "src": "2791:13:0"
                                          }
                                        ],
                                        "id": 352,
                                        "name": "ExpressionStatement",
                                        "src": "2791:13:0"
                                      }
                                    ],
                                    "id": 353,
                                    "name": "Block",
                                    "src": "2773:46:0"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "&&",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": ">=",
                                              "type": "bool"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 320,
                                                  "type": "uint256",
                                                  "value": "x"
                                                },
                                                "id": 354,
                                                "name": "Identifier",
                                                "src": "2829:1:0"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "3937",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 97",
                                                  "value": "97"
                                                },
                                                "id": 355,
                                                "name": "Literal",
                                                "src": "2834:2:0"
                                              }
                                            ],
                                            "id": 356,
                                            "name": "BinaryOperation",
                                            "src": "2829:7:0"
                                          },
                                          {
                                            "attributes": {
                                              "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "<",
                                              "type": "bool"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 320,
                                                  "type": "uint256",
                                                  "value": "x"
                                                },
                                                "id": 357,
                                                "name": "Identifier",
                                                "src": "2840:1:0"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "313033",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 103",
                                                  "value": "103"
                                                },
                                                "id": 358,
                                                "name": "Literal",
                                                "src": "2844:3:0"
                                              }
                                            ],
                                            "id": 359,
                                            "name": "BinaryOperation",
                                            "src": "2840:7:0"
                                          }
                                        ],
                                        "id": 360,
                                        "name": "BinaryOperation",
                                        "src": "2829:18:0"
                                      },
                                      {
                                        "children": [
                                          {
                                            "children": [
                                              {
                                                "attributes": {
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "|=",
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 300,
                                                      "type": "uint256",
                                                      "value": "ret"
                                                    },
                                                    "id": 361,
                                                    "name": "Identifier",
                                                    "src": "2867:3:0"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                      },
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": "-",
                                                      "type": "uint256"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 320,
                                                          "type": "uint256",
                                                          "value": "x"
                                                        },
                                                        "id": 362,
                                                        "name": "Identifier",
                                                        "src": "2874:1:0"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "hexvalue": "3837",
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "token": "number",
                                                          "type": "int_const 87",
                                                          "value": "87"
                                                        },
                                                        "id": 363,
                                                        "name": "Literal",
                                                        "src": "2878:2:0"
                                                      }
                                                    ],
                                                    "id": 364,
                                                    "name": "BinaryOperation",
                                                    "src": "2874:6:0"
                                                  }
                                                ],
                                                "id": 365,
                                                "name": "Assignment",
                                                "src": "2867:13:0"
                                              }
                                            ],
                                            "id": 366,
                                            "name": "ExpressionStatement",
                                            "src": "2867:13:0"
                                          }
                                        ],
                                        "id": 367,
                                        "name": "Block",
                                        "src": "2849:46:0"
                                      },
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "functionReturnParameters": 284
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "isConstant": false,
                                                  "isInlineArray": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "type": "tuple(address payable,bool)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": true,
                                                      "isStructConstructorCall": false,
                                                      "lValueRequested": false,
                                                      "names": [
                                                        null
                                                      ],
                                                      "tryCall": false,
                                                      "type": "address payable",
                                                      "type_conversion": true
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": [
                                                            {
                                                              "typeIdentifier": "t_rational_0_by_1",
                                                              "typeString": "int_const 0"
                                                            }
                                                          ],
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "type": "type(address)"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "name": "address"
                                                            },
                                                            "id": 368,
                                                            "name": "ElementaryTypeName",
                                                            "src": "2927:7:0"
                                                          }
                                                        ],
                                                        "id": 369,
                                                        "name": "ElementaryTypeNameExpression",
                                                        "src": "2927:7:0"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "hexvalue": "307830",
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "token": "number",
                                                          "type": "int_const 0",
                                                          "value": "0x0"
                                                        },
                                                        "id": 370,
                                                        "name": "Literal",
                                                        "src": "2935:3:0"
                                                      }
                                                    ],
                                                    "id": 371,
                                                    "name": "FunctionCall",
                                                    "src": "2927:12:0"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "hexvalue": "66616c7365",
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": true,
                                                      "lValueRequested": false,
                                                      "token": "bool",
                                                      "type": "bool",
                                                      "value": "false"
                                                    },
                                                    "id": 372,
                                                    "name": "Literal",
                                                    "src": "2941:5:0"
                                                  }
                                                ],
                                                "id": 373,
                                                "name": "TupleExpression",
                                                "src": "2926:21:0"
                                              }
                                            ],
                                            "id": 374,
                                            "name": "Return",
                                            "src": "2919:28:0"
                                          }
                                        ],
                                        "id": 375,
                                        "name": "Block",
                                        "src": "2901:61:0"
                                      }
                                    ],
                                    "id": 376,
                                    "name": "IfStatement",
                                    "src": "2825:137:0"
                                  }
                                ],
                                "id": 377,
                                "name": "IfStatement",
                                "src": "2750:212:0"
                              }
                            ],
                            "id": 378,
                            "name": "IfStatement",
                            "src": "2675:287:0"
                          }
                        ],
                        "id": 379,
                        "name": "Block",
                        "src": "2599:373:0"
                      }
                    ],
                    "id": 380,
                    "name": "ForStatement",
                    "src": "2561:411:0"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 284
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "tuple(address payable,bool)"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "address payable",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "address"
                                    },
                                    "id": 381,
                                    "name": "ElementaryTypeName",
                                    "src": "2989:7:0"
                                  }
                                ],
                                "id": 382,
                                "name": "ElementaryTypeNameExpression",
                                "src": "2989:7:0"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 300,
                                  "type": "uint256",
                                  "value": "ret"
                                },
                                "id": 383,
                                "name": "Identifier",
                                "src": "2997:3:0"
                              }
                            ],
                            "id": 384,
                            "name": "FunctionCall",
                            "src": "2989:12:0"
                          },
                          {
                            "attributes": {
                              "hexvalue": "74727565",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "bool",
                              "type": "bool",
                              "value": "true"
                            },
                            "id": 385,
                            "name": "Literal",
                            "src": "3003:4:0"
                          }
                        ],
                        "id": 386,
                        "name": "TupleExpression",
                        "src": "2988:20:0"
                      }
                    ],
                    "id": 387,
                    "name": "Return",
                    "src": "2981:27:0"
                  }
                ],
                "id": 388,
                "name": "Block",
                "src": "2464:551:0"
              }
            ],
            "id": 389,
            "name": "FunctionDefinition",
            "src": "2376:639:0"
          }
        ],
        "id": 390,
        "name": "ContractDefinition",
        "src": "252:2765:0"
      }
    ],
    "id": 391,
    "name": "SourceUnit",
    "src": "0:3018:0"
  },
  "compiler": {
    "name": "solc",
    "version": "0.7.4+commit.3f05b770.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.3.3",
  "updatedAt": "2021-01-21T03:26:26.117Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}