{
  "contractName": "WitnetCBOR",
  "abi": [
    {
      "inputs": [],
      "name": "EmptyArray",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "length",
          "type": "uint256"
        }
      ],
      "name": "InvalidLengthEncoding",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "read",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "expected",
          "type": "uint256"
        }
      ],
      "name": "UnexpectedMajorType",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "unexpected",
          "type": "uint256"
        }
      ],
      "name": "UnsupportedMajorType",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "primitive",
          "type": "uint256"
        }
      ],
      "name": "UnsupportedPrimitive",
      "type": "error"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EmptyArray\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidLengthEncoding\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"read\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"name\":\"UnexpectedMajorType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"unexpected\",\"type\":\"uint256\"}],\"name\":\"UnsupportedMajorType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"primitive\",\"type\":\"uint256\"}],\"name\":\"UnsupportedPrimitive\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"The Witnet Foundation.\",\"details\":\"Most of the logic has been borrowed from Patrick Gansterer\\u2019s cbor.js library: https://github.com/paroga/cbor-js\",\"kind\":\"dev\",\"methods\":{},\"title\":\"A minimalistic implementation of \\u201cRFC 7049 Concise Binary Object Representation\\u201d\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library leverages a buffer-like structure for step-by-step decoding of bytes so as to minimize the gas cost of decoding them into a useful native type.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/libs/WitnetCBOR.sol\":\"WitnetCBOR\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]}},\"version\":1}",
  "bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212209c855596ff3cb4572bf88e2da3eb15f6a7b506af799ee0b5428811181c3dbfdd64736f6c634300081e0033",
  "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212209c855596ff3cb4572bf88e2da3eb15f6a7b506af799ee0b5428811181c3dbfdd64736f6c634300081e0033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "536:19028:118:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;536:19028:118;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "536:19028:118:-:0;;;;;;;;",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport \"./WitnetBuffer.sol\";\r\n\r\n/// @title A minimalistic implementation of “RFC 7049 Concise Binary Object Representation”\r\n/// @notice This library leverages a buffer-like structure for step-by-step decoding of bytes so as to minimize\r\n/// the gas cost of decoding them into a useful native type.\r\n/// @dev Most of the logic has been borrowed from Patrick Gansterer’s cbor.js library: https://github.com/paroga/cbor-js\r\n/// @author The Witnet Foundation.\r\n\r\nlibrary WitnetCBOR {\r\n\r\n  using WitnetBuffer for WitnetBuffer.Buffer;\r\n  using WitnetCBOR for WitnetCBOR.CBOR;\r\n\r\n  /// Data struct following the RFC-7049 standard: Concise Binary Object Representation.\r\n  struct CBOR {\r\n      WitnetBuffer.Buffer buffer;\r\n      uint8 initialByte;\r\n      uint8 majorType;\r\n      uint8 additionalInformation;\r\n      uint64 len;\r\n      uint64 tag;\r\n  }\r\n\r\n  uint8 internal constant MAJOR_TYPE_INT = 0;\r\n  uint8 internal constant MAJOR_TYPE_NEGATIVE_INT = 1;\r\n  uint8 internal constant MAJOR_TYPE_BYTES = 2;\r\n  uint8 internal constant MAJOR_TYPE_STRING = 3;\r\n  uint8 internal constant MAJOR_TYPE_ARRAY = 4;\r\n  uint8 internal constant MAJOR_TYPE_MAP = 5;\r\n  uint8 internal constant MAJOR_TYPE_TAG = 6;\r\n  uint8 internal constant MAJOR_TYPE_CONTENT_FREE = 7;\r\n\r\n  uint32 internal constant UINT32_MAX = type(uint32).max;\r\n  uint64 internal constant UINT64_MAX = type(uint64).max;\r\n  \r\n  error EmptyArray();\r\n  error InvalidLengthEncoding(uint length);\r\n  error UnexpectedMajorType(uint read, uint expected);\r\n  error UnsupportedPrimitive(uint primitive);\r\n  error UnsupportedMajorType(uint unexpected);  \r\n\r\n  modifier isMajorType(\r\n      WitnetCBOR.CBOR memory cbor,\r\n      uint8 expected\r\n  ) {\r\n    if (cbor.majorType != expected) {\r\n      revert UnexpectedMajorType(cbor.majorType, expected);\r\n    }\r\n    _;\r\n  }\r\n\r\n  modifier notEmpty(WitnetBuffer.Buffer memory buffer) {\r\n    if (buffer.data.length == 0) {\r\n      revert WitnetBuffer.EmptyBuffer();\r\n    }\r\n    _;\r\n  }\r\n\r\n  function eof(CBOR memory cbor)\r\n    internal pure\r\n    returns (bool)\r\n  {\r\n    return cbor.buffer.cursor >= cbor.buffer.data.length;\r\n  }\r\n\r\n  /// @notice Decode a CBOR structure from raw bytes.\r\n  /// @dev This is the main factory for CBOR instances, which can be later decoded into native EVM types.\r\n  /// @param bytecode Raw bytes representing a CBOR-encoded value.\r\n  /// @return A `CBOR` instance containing a partially decoded value.\r\n  function fromBytes(bytes memory bytecode)\r\n    internal pure\r\n    returns (CBOR memory)\r\n  {\r\n    WitnetBuffer.Buffer memory buffer = WitnetBuffer.Buffer(bytecode, 0);\r\n    return fromBuffer(buffer);\r\n  }\r\n\r\n  /// @notice Decode a CBOR structure from raw bytes.\r\n  /// @dev This is an alternate factory for CBOR instances, which can be later decoded into native EVM types.\r\n  /// @param buffer A Buffer structure representing a CBOR-encoded value.\r\n  /// @return A `CBOR` instance containing a partially decoded value.\r\n  function fromBuffer(WitnetBuffer.Buffer memory buffer)\r\n    internal pure\r\n    notEmpty(buffer)\r\n    returns (CBOR memory)\r\n  {\r\n    uint8 initialByte;\r\n    uint8 majorType = 255;\r\n    uint8 additionalInformation;\r\n    uint64 tag = UINT64_MAX;\r\n    uint256 len;\r\n    bool isTagged = true;\r\n    while (isTagged) {\r\n      // Extract basic CBOR properties from input bytes\r\n      initialByte = buffer.readUint8();\r\n      len ++;\r\n      majorType = initialByte >> 5;\r\n      additionalInformation = initialByte & 0x1f;\r\n      // Early CBOR tag parsing.\r\n      if (majorType == MAJOR_TYPE_TAG) {\r\n        uint _cursor = buffer.cursor;\r\n        tag = readLength(buffer, additionalInformation);\r\n        len += buffer.cursor - _cursor;\r\n      } else {\r\n        isTagged = false;\r\n      }\r\n    }\r\n    if (majorType > MAJOR_TYPE_CONTENT_FREE) {\r\n      revert UnsupportedMajorType(majorType);\r\n    }\r\n    return CBOR(\r\n      buffer,\r\n      initialByte,\r\n      majorType,\r\n      additionalInformation,\r\n      uint64(len),\r\n      tag\r\n    );\r\n  }\r\n\r\n  function fork(WitnetCBOR.CBOR memory self)\r\n    internal pure\r\n    returns (WitnetCBOR.CBOR memory)\r\n  {\r\n    return CBOR({\r\n      buffer: self.buffer.fork(),\r\n      initialByte: self.initialByte,\r\n      majorType: self.majorType,\r\n      additionalInformation: self.additionalInformation,\r\n      len: self.len,\r\n      tag: self.tag\r\n    });\r\n  }\r\n\r\n  function settle(CBOR memory self)\r\n      internal pure\r\n      returns (WitnetCBOR.CBOR memory)\r\n  {\r\n    if (!self.eof()) {\r\n      return fromBuffer(self.buffer);\r\n    } else {\r\n      return self;\r\n    }\r\n  }\r\n\r\n  function skip(CBOR memory self)\r\n      internal pure\r\n      returns (WitnetCBOR.CBOR memory)\r\n  {\r\n    if (\r\n      self.majorType == MAJOR_TYPE_INT\r\n        || self.majorType == MAJOR_TYPE_NEGATIVE_INT\r\n        || (\r\n          self.majorType == MAJOR_TYPE_CONTENT_FREE \r\n            && self.additionalInformation >= 25\r\n            && self.additionalInformation <= 27\r\n        )\r\n    ) {\r\n      self.buffer.cursor += self.peekLength();\r\n    } else if (\r\n        self.majorType == MAJOR_TYPE_STRING\r\n          || self.majorType == MAJOR_TYPE_BYTES\r\n    ) {\r\n      uint64 len = readLength(self.buffer, self.additionalInformation);\r\n      self.buffer.cursor += len;\r\n    } else if (\r\n      self.majorType == MAJOR_TYPE_ARRAY\r\n        || self.majorType == MAJOR_TYPE_MAP\r\n    ) { \r\n      self.len = readLength(self.buffer, self.additionalInformation);      \r\n    } else if (\r\n       self.majorType != MAJOR_TYPE_CONTENT_FREE\r\n        || (\r\n          self.additionalInformation != 20\r\n            && self.additionalInformation != 21\r\n        )\r\n    ) {\r\n      revert(\"WitnetCBOR.skip: unsupported major type\");\r\n    }\r\n    return self;\r\n  }\r\n\r\n  function peekLength(CBOR memory self)\r\n    internal pure\r\n    returns (uint64)\r\n  {\r\n    if (self.additionalInformation < 24) {\r\n      return 0;\r\n    } else if (self.additionalInformation < 28) {\r\n      return uint64(1 << (self.additionalInformation - 24));\r\n    } else {\r\n      revert InvalidLengthEncoding(self.additionalInformation);\r\n    }\r\n  }\r\n\r\n  function readArray(CBOR memory self)\r\n    internal pure\r\n    isMajorType(self, MAJOR_TYPE_ARRAY)\r\n    returns (CBOR[] memory items)\r\n  {\r\n    // read array's length and move self cursor forward to the first array element:\r\n    uint64 len = readLength(self.buffer, self.additionalInformation);\r\n    items = new CBOR[](len + 1);\r\n    for (uint ix = 0; ix < len; ix ++) {\r\n      // settle next element in the array:\r\n      self = self.settle();\r\n      // fork it and added to the list of items to be returned:\r\n      items[ix] = self.fork();\r\n      if (self.majorType == MAJOR_TYPE_ARRAY) {\r\n        CBOR[] memory _subitems = self.readArray();\r\n        // move forward to the first element after inner array:\r\n        self = _subitems[_subitems.length - 1];\r\n      } else if (self.majorType == MAJOR_TYPE_MAP) {\r\n        CBOR[] memory _subitems = self.readMap();\r\n        // move forward to the first element after inner map:\r\n        self = _subitems[_subitems.length - 1];\r\n      } else {\r\n        // move forward to the next element:\r\n        self.skip();\r\n      }\r\n    }\r\n    // return self cursor as extra item at the end of the list,\r\n    // as to optimize recursion when jumping over nested arrays:\r\n    items[len] = self;\r\n  }\r\n\r\n  function readMap(CBOR memory self)\r\n    internal pure\r\n    isMajorType(self, MAJOR_TYPE_MAP)\r\n    returns (CBOR[] memory items)\r\n  {\r\n    // read number of items within the map and move self cursor forward to the first inner element:\r\n    uint64 len = readLength(self.buffer, self.additionalInformation) * 2;\r\n    items = new CBOR[](len + 1);\r\n    for (uint ix = 0; ix < len; ix ++) {\r\n      // settle next element in the array:\r\n      self = self.settle();\r\n      // fork it and added to the list of items to be returned:\r\n      items[ix] = self.fork();\r\n      if (ix % 2 == 0 && self.majorType != MAJOR_TYPE_STRING) {\r\n        revert UnexpectedMajorType(self.majorType, MAJOR_TYPE_STRING);\r\n      } else if (self.majorType == MAJOR_TYPE_ARRAY || self.majorType == MAJOR_TYPE_MAP) {\r\n        CBOR[] memory _subitems = (self.majorType == MAJOR_TYPE_ARRAY\r\n            ? self.readArray()\r\n            : self.readMap()\r\n        );\r\n        // move forward to the first element after inner array or map:\r\n        self = _subitems[_subitems.length - 1];\r\n      } else {\r\n        // move forward to the next element:\r\n        self.skip();\r\n      }\r\n    }\r\n    // return self cursor as extra item at the end of the list,\r\n    // as to optimize recursion when jumping over nested arrays:\r\n    items[len] = self;\r\n  }\r\n\r\n  /// Reads the length of the settle CBOR item from a buffer, consuming a different number of bytes depending on the\r\n  /// value of the `additionalInformation` argument.\r\n  function readLength(\r\n      WitnetBuffer.Buffer memory buffer,\r\n      uint8 additionalInformation\r\n    ) \r\n    internal pure\r\n    returns (uint64)\r\n  {\r\n    if (additionalInformation < 24) {\r\n      return additionalInformation;\r\n    }\r\n    if (additionalInformation == 24) {\r\n      return buffer.readUint8();\r\n    }\r\n    if (additionalInformation == 25) {\r\n      return buffer.readUint16();\r\n    }\r\n    if (additionalInformation == 26) {\r\n      return buffer.readUint32();\r\n    }\r\n    if (additionalInformation == 27) {\r\n      return buffer.readUint64();\r\n    }\r\n    if (additionalInformation == 31) {\r\n      return UINT64_MAX;\r\n    }\r\n    revert InvalidLengthEncoding(additionalInformation);\r\n  }\r\n\r\n  /// @notice Read a `CBOR` structure into a native `bool` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return The value represented by the input, as a `bool` value.\r\n  function readBool(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_CONTENT_FREE)\r\n    returns (bool)\r\n  {\r\n    if (cbor.additionalInformation == 20) {\r\n      return false;\r\n    } else if (cbor.additionalInformation == 21) {\r\n      return true;\r\n    } else {\r\n      revert UnsupportedPrimitive(cbor.additionalInformation);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `bytes` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return output The value represented by the input, as a `bytes` value.   \r\n  function readBytes(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_BYTES)\r\n    returns (bytes memory output)\r\n  {\r\n    cbor.len = readLength(\r\n      cbor.buffer,\r\n      cbor.additionalInformation\r\n    );\r\n    if (cbor.len == UINT32_MAX) {\r\n      // These checks look repetitive but the equivalent loop would be more expensive.\r\n      uint32 length = uint32(_readIndefiniteStringLength(\r\n        cbor.buffer,\r\n        cbor.majorType\r\n      ));\r\n      if (length < UINT32_MAX) {\r\n        output = abi.encodePacked(cbor.buffer.read(length));\r\n        length = uint32(_readIndefiniteStringLength(\r\n          cbor.buffer,\r\n          cbor.majorType\r\n        ));\r\n        if (length < UINT32_MAX) {\r\n          output = abi.encodePacked(\r\n            output,\r\n            cbor.buffer.read(length)\r\n          );\r\n        }\r\n      }\r\n    } else {\r\n      return cbor.buffer.read(uint32(cbor.len));\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a `fixed16` value.\r\n  /// @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values\r\n  /// by 5 decimal orders so as to get a fixed precision of 5 decimal positions, which should be OK for most `fixed16`\r\n  /// use cases. In other words, the output of this method is 10,000 times the actual value, encoded into an `int32`.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return The value represented by the input, as an `int128` value.\r\n  function readFloat16(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_CONTENT_FREE)\r\n    returns (int32)\r\n  {\r\n    if (cbor.additionalInformation == 25) {\r\n      return cbor.buffer.readFloat16();\r\n    } else {\r\n      revert UnsupportedPrimitive(cbor.additionalInformation);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a `fixed32` value.\r\n  /// @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values\r\n  /// by 9 decimal orders so as to get a fixed precision of 9 decimal positions, which should be OK for most `fixed64`\r\n  /// use cases. In other words, the output of this method is 10^9 times the actual value, encoded into an `int`.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return The value represented by the input, as an `int` value.\r\n  function readFloat32(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_CONTENT_FREE)\r\n    returns (int)\r\n  {\r\n    if (cbor.additionalInformation == 26) {\r\n      return cbor.buffer.readFloat32();\r\n    } else {\r\n      revert UnsupportedPrimitive(cbor.additionalInformation);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a `fixed64` value.\r\n  /// @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values\r\n  /// by 15 decimal orders so as to get a fixed precision of 15 decimal positions, which should be OK for most `fixed64`\r\n  /// use cases. In other words, the output of this method is 10^15 times the actual value, encoded into an `int`.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return The value represented by the input, as an `int` value.\r\n  function readFloat64(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_CONTENT_FREE)\r\n    returns (int)\r\n  {\r\n    if (cbor.additionalInformation == 27) {\r\n      return cbor.buffer.readFloat64();\r\n    } else {\r\n      revert UnsupportedPrimitive(cbor.additionalInformation);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `int128[]` value whose inner values follow the same convention \r\n  /// @notice as explained in `decodeFixed16`.\r\n  /// @param cbor An instance of `CBOR`.\r\n  function readFloat16Array(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_ARRAY)\r\n    returns (int32[] memory values)\r\n  {\r\n    uint64 length = readLength(cbor.buffer, cbor.additionalInformation);\r\n    if (length < UINT64_MAX) {\r\n      values = new int32[](length);\r\n      for (uint64 i = 0; i < length; ) {\r\n        CBOR memory item = fromBuffer(cbor.buffer);\r\n        values[i] = readFloat16(item);\r\n        unchecked {\r\n          i ++;\r\n        }\r\n      }\r\n    } else {\r\n      revert InvalidLengthEncoding(length);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `int128` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return The value represented by the input, as an `int128` value.\r\n  function readInt(CBOR memory cbor)\r\n    internal pure\r\n    returns (int64)\r\n  {\r\n    if (cbor.majorType == 1) {\r\n      uint64 _value = readLength(\r\n        cbor.buffer,\r\n        cbor.additionalInformation\r\n      );\r\n      return int64(-1) - int64(uint64(_value));\r\n    } else if (cbor.majorType == 0) {\r\n      // Any `uint64` can be safely casted to `int128`, so this method supports majorType 1 as well so as to have offer\r\n      // a uniform API for positive and negative numbers\r\n      return int64(readUint(cbor));\r\n    }\r\n    else {\r\n      revert UnexpectedMajorType(cbor.majorType, 1);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `int[]` value.\r\n  /// @param cbor instance of `CBOR`.\r\n  /// @return array The value represented by the input, as an `int[]` value.\r\n  function readIntArray(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_ARRAY)\r\n    returns (int64[] memory array)\r\n  {\r\n    uint64 length = readLength(cbor.buffer, cbor.additionalInformation);\r\n    if (length < UINT64_MAX) {\r\n      array = new int64[](length);\r\n      for (uint i = 0; i < length; ) {\r\n        CBOR memory item = fromBuffer(cbor.buffer);\r\n        array[i] = readInt(item);\r\n        unchecked {\r\n          i ++;\r\n        }\r\n      }\r\n    } else {\r\n      revert InvalidLengthEncoding(length);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `string` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return text The value represented by the input, as a `string` value.\r\n  function readString(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_STRING)\r\n    returns (string memory text)\r\n  {\r\n    cbor.len = readLength(cbor.buffer, cbor.additionalInformation);\r\n    if (cbor.len == UINT64_MAX) {\r\n      bool _done;\r\n      while (!_done) {\r\n        uint64 length = _readIndefiniteStringLength(\r\n          cbor.buffer,\r\n          cbor.majorType\r\n        );\r\n        if (length < UINT64_MAX) {\r\n          text = string(abi.encodePacked(\r\n            text,\r\n            cbor.buffer.readText(length / 4)\r\n          ));\r\n        } else {\r\n          _done = true;\r\n        }\r\n      }\r\n    } else {\r\n      return string(cbor.buffer.readText(cbor.len));\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `string[]` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return strings The value represented by the input, as an `string[]` value.\r\n  function readStringArray(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_ARRAY)\r\n    returns (string[] memory strings)\r\n  {\r\n    uint length = readLength(cbor.buffer, cbor.additionalInformation);\r\n    if (length < UINT64_MAX) {\r\n      strings = new string[](length);\r\n      for (uint i = 0; i < length; ) {\r\n        CBOR memory item = fromBuffer(cbor.buffer);\r\n        strings[i] = readString(item);\r\n        unchecked {\r\n          i ++;\r\n        }\r\n      }\r\n    } else {\r\n      revert InvalidLengthEncoding(length);\r\n    }\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `uint64` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return The value represented by the input, as an `uint64` value.\r\n  function readUint(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_INT)\r\n    returns (uint64)\r\n  {\r\n    return readLength(\r\n      cbor.buffer,\r\n      cbor.additionalInformation\r\n    );\r\n  }\r\n\r\n  /// @notice Decode a `CBOR` structure into a native `uint64[]` value.\r\n  /// @param cbor An instance of `CBOR`.\r\n  /// @return values The value represented by the input, as an `uint64[]` value.\r\n  function readUintArray(CBOR memory cbor)\r\n    internal pure\r\n    isMajorType(cbor, MAJOR_TYPE_ARRAY)\r\n    returns (uint64[] memory values)\r\n  {\r\n    uint64 length = readLength(cbor.buffer, cbor.additionalInformation);\r\n    if (length < UINT64_MAX) {\r\n      values = new uint64[](length);\r\n      for (uint ix = 0; ix < length; ) {\r\n        CBOR memory item = fromBuffer(cbor.buffer);\r\n        values[ix] = readUint(item);\r\n        unchecked {\r\n          ix ++;\r\n        }\r\n      }\r\n    } else {\r\n      revert InvalidLengthEncoding(length);\r\n    }\r\n  }  \r\n\r\n  /// Read the length of a CBOR indifinite-length item (arrays, maps, byte strings and text) from a buffer, consuming\r\n  /// as many bytes as specified by the first byte.\r\n  function _readIndefiniteStringLength(\r\n      WitnetBuffer.Buffer memory buffer,\r\n      uint8 majorType\r\n    )\r\n    private pure\r\n    returns (uint64 len)\r\n  {\r\n    uint8 initialByte = buffer.readUint8();\r\n    if (initialByte == 0xff) {\r\n      return UINT64_MAX;\r\n    }\r\n    len = readLength(\r\n      buffer,\r\n      initialByte & 0x1f\r\n    );\r\n    if (len >= UINT64_MAX) {\r\n      revert InvalidLengthEncoding(len);\r\n    } else if (majorType != (initialByte >> 5)) {\r\n      revert UnexpectedMajorType((initialByte >> 5), majorType);\r\n    }\r\n  }\r\n \r\n}",
  "sourcePath": "C:\\Users\\guill\\github\\guidiaz\\witnet-solidity-bridge\\contracts\\libs\\WitnetCBOR.sol",
  "ast": {
    "absolutePath": "project:/contracts/libs/WitnetCBOR.sol",
    "exportedSymbols": {
      "WitnetBuffer": [
        42631
      ],
      "WitnetCBOR": [
        44174
      ]
    },
    "id": 44175,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 42633,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:118"
      },
      {
        "absolutePath": "project:/contracts/libs/WitnetBuffer.sol",
        "file": "./WitnetBuffer.sol",
        "id": 42634,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 44175,
        "sourceUnit": 42632,
        "src": "70:28:118",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "canonicalName": "WitnetCBOR",
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": {
          "id": 42635,
          "nodeType": "StructuredDocumentation",
          "src": "102:432:118",
          "text": "@title A minimalistic implementation of “RFC 7049 Concise Binary Object Representation”\n @notice This library leverages a buffer-like structure for step-by-step decoding of bytes so as to minimize\n the gas cost of decoding them into a useful native type.\n @dev Most of the logic has been borrowed from Patrick Gansterer’s cbor.js library: https://github.com/paroga/cbor-js\n @author The Witnet Foundation."
        },
        "fullyImplemented": true,
        "id": 44174,
        "linearizedBaseContracts": [
          44174
        ],
        "name": "WitnetCBOR",
        "nameLocation": "544:10:118",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 42639,
            "libraryName": {
              "id": 42636,
              "name": "WitnetBuffer",
              "nameLocations": [
                "568:12:118"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 42631,
              "src": "568:12:118"
            },
            "nodeType": "UsingForDirective",
            "src": "562:43:118",
            "typeName": {
              "id": 42638,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 42637,
                "name": "WitnetBuffer.Buffer",
                "nameLocations": [
                  "585:12:118",
                  "598:6:118"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 40764,
                "src": "585:19:118"
              },
              "referencedDeclaration": 40764,
              "src": "585:19:118",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Buffer_$40764_storage_ptr",
                "typeString": "struct WitnetBuffer.Buffer"
              }
            }
          },
          {
            "global": false,
            "id": 42643,
            "libraryName": {
              "id": 42640,
              "name": "WitnetCBOR",
              "nameLocations": [
                "615:10:118"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 44174,
              "src": "615:10:118"
            },
            "nodeType": "UsingForDirective",
            "src": "609:37:118",
            "typeName": {
              "id": 42642,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 42641,
                "name": "WitnetCBOR.CBOR",
                "nameLocations": [
                  "630:10:118",
                  "641:4:118"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 42658,
                "src": "630:15:118"
              },
              "referencedDeclaration": 42658,
              "src": "630:15:118",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                "typeString": "struct WitnetCBOR.CBOR"
              }
            }
          },
          {
            "canonicalName": "WitnetCBOR.CBOR",
            "documentation": {
              "id": 42644,
              "nodeType": "StructuredDocumentation",
              "src": "652:86:118",
              "text": "Data struct following the RFC-7049 standard: Concise Binary Object Representation."
            },
            "id": 42658,
            "members": [
              {
                "constant": false,
                "id": 42647,
                "mutability": "mutable",
                "name": "buffer",
                "nameLocation": "783:6:118",
                "nodeType": "VariableDeclaration",
                "scope": 42658,
                "src": "763:26:118",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Buffer_$40764_storage_ptr",
                  "typeString": "struct WitnetBuffer.Buffer"
                },
                "typeName": {
                  "id": 42646,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 42645,
                    "name": "WitnetBuffer.Buffer",
                    "nameLocations": [
                      "763:12:118",
                      "776:6:118"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 40764,
                    "src": "763:19:118"
                  },
                  "referencedDeclaration": 40764,
                  "src": "763:19:118",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Buffer_$40764_storage_ptr",
                    "typeString": "struct WitnetBuffer.Buffer"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42649,
                "mutability": "mutable",
                "name": "initialByte",
                "nameLocation": "804:11:118",
                "nodeType": "VariableDeclaration",
                "scope": 42658,
                "src": "798:17:118",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 42648,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "798:5:118",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42651,
                "mutability": "mutable",
                "name": "majorType",
                "nameLocation": "830:9:118",
                "nodeType": "VariableDeclaration",
                "scope": 42658,
                "src": "824:15:118",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 42650,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "824:5:118",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42653,
                "mutability": "mutable",
                "name": "additionalInformation",
                "nameLocation": "854:21:118",
                "nodeType": "VariableDeclaration",
                "scope": 42658,
                "src": "848:27:118",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 42652,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "848:5:118",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42655,
                "mutability": "mutable",
                "name": "len",
                "nameLocation": "891:3:118",
                "nodeType": "VariableDeclaration",
                "scope": 42658,
                "src": "884:10:118",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 42654,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "884:6:118",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42657,
                "mutability": "mutable",
                "name": "tag",
                "nameLocation": "910:3:118",
                "nodeType": "VariableDeclaration",
                "scope": 42658,
                "src": "903:10:118",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 42656,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "903:6:118",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "CBOR",
            "nameLocation": "749:4:118",
            "nodeType": "StructDefinition",
            "scope": 44174,
            "src": "742:177:118",
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 42661,
            "mutability": "constant",
            "name": "MAJOR_TYPE_INT",
            "nameLocation": "949:14:118",
            "nodeType": "VariableDeclaration",
            "scope": 44174,
            "src": "925:42:118",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 42659,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "925:5:118",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 42660,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "966:1:118",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 42664,
            "mutability": "constant",
            "name": "MAJOR_TYPE_NEGATIVE_INT",
            "nameLocation": "996:23:118",
            "nodeType": "VariableDeclaration",
            "scope": 44174,
            "src": "972:51:118",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 42662,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "972:5:118",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "31",
              "id": 42663,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1022:1:118",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 42667,
            "mutability": "constant",
            "name": "MAJOR_TYPE_BYTES",
            "nameLocation": "1052:16:118",
            "nodeType": "VariableDeclaration",
            "scope": 44174,
            "src": "1028:44:118",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 42665,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1028:5:118",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "32",
              "id": 42666,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1071:1:118",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 42670,
            "mutability": "constant",
            "name": "MAJOR_TYPE_STRING",
            "nameLocation": "1101:17:118",
            "nodeType": "VariableDeclaration",
            "scope": 44174,
            "src": "1077:45:118",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 42668,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1077:5:118",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "33",
              "id": 42669,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1121:1:118",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_3_by_1",
                "typeString": "int_const 3"
              },
              "value": "3"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 42673,
            "mutability": "constant",
            "name": "MAJOR_TYPE_ARRAY",
            "nameLocation": "1151:16:118",
            "nodeType": "VariableDeclaration",
            "scope": 44174,
            "src": "1127:44:118",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 42671,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1127:5:118",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "34",
              "id": 42672,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1170:1:118",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4_by_1",
                "typeString": "int_const 4"
              },
              "value": "4"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 42676,
            "mutability": "constant",
            "name": "MAJOR_TYPE_MAP",
            "nameLocation": "1200:14:118",
            "nodeType": "VariableDeclaration",
            "scope": 44174,
            "src": "1176:42:118",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 42674,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1176:5:118",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "35",
              "id": 42675,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1217:1:118",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_5_by_1",
                "typeString": "int_const 5"
              },
              "value": "5"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 42679,
            "mutability": "constant",
            "name": "MAJOR_TYPE_TAG",
            "nameLocation": "1247:14:118",
            "nodeType": "VariableDeclaration",
            "scope": 44174,
            "src": "1223:42:118",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 42677,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1223:5:118",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "36",
              "id": 42678,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1264:1:118",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_6_by_1",
                "typeString": "int_const 6"
              },
              "value": "6"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 42682,
            "mutability": "constant",
            "name": "MAJOR_TYPE_CONTENT_FREE",
            "nameLocation": "1294:23:118",
            "nodeType": "VariableDeclaration",
            "scope": 44174,
            "src": "1270:51:118",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 42680,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1270:5:118",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "hexValue": "37",
              "id": 42681,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1320:1:118",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_7_by_1",
                "typeString": "int_const 7"
              },
              "value": "7"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 42689,
            "mutability": "constant",
            "name": "UINT32_MAX",
            "nameLocation": "1353:10:118",
            "nodeType": "VariableDeclaration",
            "scope": 44174,
            "src": "1328:54:118",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 42683,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "1328:6:118",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "expression": {
                "arguments": [
                  {
                    "id": 42686,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "1371:6:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    },
                    "typeName": {
                      "id": 42685,
                      "name": "uint32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1371:6:118",
                      "typeDescriptions": {}
                    }
                  }
                ],
                "expression": {
                  "argumentTypes": [
                    {
                      "typeIdentifier": "t_type$_t_uint32_$",
                      "typeString": "type(uint32)"
                    }
                  ],
                  "id": 42684,
                  "name": "type",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4294967269,
                  "src": "1366:4:118",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                    "typeString": "function () pure"
                  }
                },
                "id": 42687,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "functionCall",
                "lValueRequested": false,
                "nameLocations": [],
                "names": [],
                "nodeType": "FunctionCall",
                "src": "1366:12:118",
                "tryCall": false,
                "typeDescriptions": {
                  "typeIdentifier": "t_magic_meta_type_t_uint32",
                  "typeString": "type(uint32)"
                }
              },
              "id": 42688,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberLocation": "1379:3:118",
              "memberName": "max",
              "nodeType": "MemberAccess",
              "src": "1366:16:118",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 42696,
            "mutability": "constant",
            "name": "UINT64_MAX",
            "nameLocation": "1412:10:118",
            "nodeType": "VariableDeclaration",
            "scope": 44174,
            "src": "1387:54:118",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint64",
              "typeString": "uint64"
            },
            "typeName": {
              "id": 42690,
              "name": "uint64",
              "nodeType": "ElementaryTypeName",
              "src": "1387:6:118",
              "typeDescriptions": {
                "typeIdentifier": "t_uint64",
                "typeString": "uint64"
              }
            },
            "value": {
              "expression": {
                "arguments": [
                  {
                    "id": 42693,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "ElementaryTypeNameExpression",
                    "src": "1430:6:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_type$_t_uint64_$",
                      "typeString": "type(uint64)"
                    },
                    "typeName": {
                      "id": 42692,
                      "name": "uint64",
                      "nodeType": "ElementaryTypeName",
                      "src": "1430:6:118",
                      "typeDescriptions": {}
                    }
                  }
                ],
                "expression": {
                  "argumentTypes": [
                    {
                      "typeIdentifier": "t_type$_t_uint64_$",
                      "typeString": "type(uint64)"
                    }
                  ],
                  "id": 42691,
                  "name": "type",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4294967269,
                  "src": "1425:4:118",
                  "typeDescriptions": {
                    "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                    "typeString": "function () pure"
                  }
                },
                "id": 42694,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "functionCall",
                "lValueRequested": false,
                "nameLocations": [],
                "names": [],
                "nodeType": "FunctionCall",
                "src": "1425:12:118",
                "tryCall": false,
                "typeDescriptions": {
                  "typeIdentifier": "t_magic_meta_type_t_uint64",
                  "typeString": "type(uint64)"
                }
              },
              "id": 42695,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "memberLocation": "1438:3:118",
              "memberName": "max",
              "nodeType": "MemberAccess",
              "src": "1425:16:118",
              "typeDescriptions": {
                "typeIdentifier": "t_uint64",
                "typeString": "uint64"
              }
            },
            "visibility": "internal"
          },
          {
            "errorSelector": "521299a9",
            "id": 42698,
            "name": "EmptyArray",
            "nameLocation": "1456:10:118",
            "nodeType": "ErrorDefinition",
            "parameters": {
              "id": 42697,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1466:2:118"
            },
            "src": "1450:19:118"
          },
          {
            "errorSelector": "6d785b13",
            "id": 42702,
            "name": "InvalidLengthEncoding",
            "nameLocation": "1479:21:118",
            "nodeType": "ErrorDefinition",
            "parameters": {
              "id": 42701,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42700,
                  "mutability": "mutable",
                  "name": "length",
                  "nameLocation": "1506:6:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 42702,
                  "src": "1501:11:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42699,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1501:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1500:13:118"
            },
            "src": "1473:41:118"
          },
          {
            "errorSelector": "001000a0",
            "id": 42708,
            "name": "UnexpectedMajorType",
            "nameLocation": "1524:19:118",
            "nodeType": "ErrorDefinition",
            "parameters": {
              "id": 42707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42704,
                  "mutability": "mutable",
                  "name": "read",
                  "nameLocation": "1549:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 42708,
                  "src": "1544:9:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42703,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1544:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42706,
                  "mutability": "mutable",
                  "name": "expected",
                  "nameLocation": "1560:8:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 42708,
                  "src": "1555:13:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42705,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1555:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1543:26:118"
            },
            "src": "1518:52:118"
          },
          {
            "errorSelector": "300c1304",
            "id": 42712,
            "name": "UnsupportedPrimitive",
            "nameLocation": "1580:20:118",
            "nodeType": "ErrorDefinition",
            "parameters": {
              "id": 42711,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42710,
                  "mutability": "mutable",
                  "name": "primitive",
                  "nameLocation": "1606:9:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 42712,
                  "src": "1601:14:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42709,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1601:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1600:16:118"
            },
            "src": "1574:43:118"
          },
          {
            "errorSelector": "bd2ac879",
            "id": 42716,
            "name": "UnsupportedMajorType",
            "nameLocation": "1627:20:118",
            "nodeType": "ErrorDefinition",
            "parameters": {
              "id": 42715,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42714,
                  "mutability": "mutable",
                  "name": "unexpected",
                  "nameLocation": "1653:10:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 42716,
                  "src": "1648:15:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42713,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1648:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1647:17:118"
            },
            "src": "1621:44:118"
          },
          {
            "body": {
              "id": 42736,
              "nodeType": "Block",
              "src": "1758:121:118",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 42726,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 42723,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42719,
                        "src": "1769:4:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 42724,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1774:9:118",
                      "memberName": "majorType",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42651,
                      "src": "1769:14:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "id": 42725,
                      "name": "expected",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42721,
                      "src": "1787:8:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "1769:26:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 42734,
                  "nodeType": "IfStatement",
                  "src": "1765:101:118",
                  "trueBody": {
                    "id": 42733,
                    "nodeType": "Block",
                    "src": "1797:69:118",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 42728,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42719,
                                "src": "1833:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 42729,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1838:9:118",
                              "memberName": "majorType",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42651,
                              "src": "1833:14:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            {
                              "id": 42730,
                              "name": "expected",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42721,
                              "src": "1849:8:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "id": 42727,
                            "name": "UnexpectedMajorType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42708,
                            "src": "1813:19:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$",
                              "typeString": "function (uint256,uint256) pure returns (error)"
                            }
                          },
                          "id": 42731,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1813:45:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_error",
                            "typeString": "error"
                          }
                        },
                        "id": 42732,
                        "nodeType": "RevertStatement",
                        "src": "1806:52:118"
                      }
                    ]
                  }
                },
                {
                  "id": 42735,
                  "nodeType": "PlaceholderStatement",
                  "src": "1872:1:118"
                }
              ]
            },
            "id": 42737,
            "name": "isMajorType",
            "nameLocation": "1682:11:118",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 42722,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42719,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "1725:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 42737,
                  "src": "1702:27:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 42718,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42717,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "1702:10:118",
                        "1713:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "1702:15:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "1702:15:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42721,
                  "mutability": "mutable",
                  "name": "expected",
                  "nameLocation": "1744:8:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 42737,
                  "src": "1738:14:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 42720,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1738:5:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1693:64:118"
            },
            "src": "1673:206:118",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 42755,
              "nodeType": "Block",
              "src": "1938:99:118",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 42746,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "expression": {
                          "id": 42742,
                          "name": "buffer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42740,
                          "src": "1949:6:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          }
                        },
                        "id": 42743,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1956:4:118",
                        "memberName": "data",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 40761,
                        "src": "1949:11:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 42744,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1961:6:118",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "1949:18:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 42745,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1971:1:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1949:23:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 42753,
                  "nodeType": "IfStatement",
                  "src": "1945:79:118",
                  "trueBody": {
                    "id": 42752,
                    "nodeType": "Block",
                    "src": "1974:50:118",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 42747,
                              "name": "WitnetBuffer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42631,
                              "src": "1990:12:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_WitnetBuffer_$42631_$",
                                "typeString": "type(library WitnetBuffer)"
                              }
                            },
                            "id": 42749,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2003:11:118",
                            "memberName": "EmptyBuffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 40746,
                            "src": "1990:24:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
                              "typeString": "function () pure returns (error)"
                            }
                          },
                          "id": 42750,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1990:26:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_error",
                            "typeString": "error"
                          }
                        },
                        "id": 42751,
                        "nodeType": "RevertStatement",
                        "src": "1983:33:118"
                      }
                    ]
                  }
                },
                {
                  "id": 42754,
                  "nodeType": "PlaceholderStatement",
                  "src": "2030:1:118"
                }
              ]
            },
            "id": 42756,
            "name": "notEmpty",
            "nameLocation": "1894:8:118",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 42741,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42740,
                  "mutability": "mutable",
                  "name": "buffer",
                  "nameLocation": "1930:6:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 42756,
                  "src": "1903:33:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                    "typeString": "struct WitnetBuffer.Buffer"
                  },
                  "typeName": {
                    "id": 42739,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42738,
                      "name": "WitnetBuffer.Buffer",
                      "nameLocations": [
                        "1903:12:118",
                        "1916:6:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 40764,
                      "src": "1903:19:118"
                    },
                    "referencedDeclaration": 40764,
                    "src": "1903:19:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Buffer_$40764_storage_ptr",
                      "typeString": "struct WitnetBuffer.Buffer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1902:35:118"
            },
            "src": "1885:152:118",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 42773,
              "nodeType": "Block",
              "src": "2116:65:118",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 42771,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "expression": {
                          "id": 42764,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42759,
                          "src": "2130:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 42765,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2135:6:118",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42647,
                        "src": "2130:11:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      "id": 42766,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2142:6:118",
                      "memberName": "cursor",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 40763,
                      "src": "2130:18:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "expression": {
                        "expression": {
                          "expression": {
                            "id": 42767,
                            "name": "cbor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42759,
                            "src": "2152:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 42768,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2157:6:118",
                          "memberName": "buffer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 42647,
                          "src": "2152:11:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          }
                        },
                        "id": 42769,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2164:4:118",
                        "memberName": "data",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 40761,
                        "src": "2152:16:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 42770,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2169:6:118",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "2152:23:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2130:45:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 42763,
                  "id": 42772,
                  "nodeType": "Return",
                  "src": "2123:52:118"
                }
              ]
            },
            "id": 42774,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "eof",
            "nameLocation": "2052:3:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 42760,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42759,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "2068:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 42774,
                  "src": "2056:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 42758,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42757,
                      "name": "CBOR",
                      "nameLocations": [
                        "2056:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "2056:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "2056:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2055:18:118"
            },
            "returnParameters": {
              "id": 42763,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42762,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 42774,
                  "src": "2107:4:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 42761,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2107:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2106:6:118"
            },
            "scope": 44174,
            "src": "2043:138:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 42798,
              "nodeType": "Block",
              "src": "2579:113:118",
              "statements": [
                {
                  "assignments": [
                    42787
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 42787,
                      "mutability": "mutable",
                      "name": "buffer",
                      "nameLocation": "2613:6:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 42798,
                      "src": "2586:33:118",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                        "typeString": "struct WitnetBuffer.Buffer"
                      },
                      "typeName": {
                        "id": 42786,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 42785,
                          "name": "WitnetBuffer.Buffer",
                          "nameLocations": [
                            "2586:12:118",
                            "2599:6:118"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 40764,
                          "src": "2586:19:118"
                        },
                        "referencedDeclaration": 40764,
                        "src": "2586:19:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$40764_storage_ptr",
                          "typeString": "struct WitnetBuffer.Buffer"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 42793,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 42790,
                        "name": "bytecode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42777,
                        "src": "2642:8:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 42791,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2652:1:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "expression": {
                        "id": 42788,
                        "name": "WitnetBuffer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42631,
                        "src": "2622:12:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetBuffer_$42631_$",
                          "typeString": "type(library WitnetBuffer)"
                        }
                      },
                      "id": 42789,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2635:6:118",
                      "memberName": "Buffer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 40764,
                      "src": "2622:19:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_Buffer_$40764_storage_ptr_$",
                        "typeString": "type(struct WitnetBuffer.Buffer storage pointer)"
                      }
                    },
                    "id": 42792,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2622:32:118",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                      "typeString": "struct WitnetBuffer.Buffer memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2586:68:118"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 42795,
                        "name": "buffer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42787,
                        "src": "2679:6:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      ],
                      "id": 42794,
                      "name": "fromBuffer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42908,
                      "src": "2668:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_struct$_CBOR_$42658_memory_ptr_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetCBOR.CBOR memory)"
                      }
                    },
                    "id": 42796,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2668:18:118",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "functionReturnParameters": 42782,
                  "id": 42797,
                  "nodeType": "Return",
                  "src": "2661:25:118"
                }
              ]
            },
            "documentation": {
              "id": 42775,
              "nodeType": "StructuredDocumentation",
              "src": "2187:297:118",
              "text": "@notice Decode a CBOR structure from raw bytes.\n @dev This is the main factory for CBOR instances, which can be later decoded into native EVM types.\n @param bytecode Raw bytes representing a CBOR-encoded value.\n @return A `CBOR` instance containing a partially decoded value."
            },
            "id": 42799,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "fromBytes",
            "nameLocation": "2497:9:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 42778,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42777,
                  "mutability": "mutable",
                  "name": "bytecode",
                  "nameLocation": "2520:8:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 42799,
                  "src": "2507:21:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 42776,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2507:5:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2506:23:118"
            },
            "returnParameters": {
              "id": 42782,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42781,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 42799,
                  "src": "2563:11:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 42780,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42779,
                      "name": "CBOR",
                      "nameLocations": [
                        "2563:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "2563:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "2563:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2562:13:118"
            },
            "scope": 44174,
            "src": "2488:204:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 42907,
              "nodeType": "Block",
              "src": "3136:907:118",
              "statements": [
                {
                  "assignments": [
                    42813
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 42813,
                      "mutability": "mutable",
                      "name": "initialByte",
                      "nameLocation": "3149:11:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 42907,
                      "src": "3143:17:118",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 42812,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "3143:5:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 42814,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3143:17:118"
                },
                {
                  "assignments": [
                    42816
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 42816,
                      "mutability": "mutable",
                      "name": "majorType",
                      "nameLocation": "3173:9:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 42907,
                      "src": "3167:15:118",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 42815,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "3167:5:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 42818,
                  "initialValue": {
                    "hexValue": "323535",
                    "id": 42817,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3185:3:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_255_by_1",
                      "typeString": "int_const 255"
                    },
                    "value": "255"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3167:21:118"
                },
                {
                  "assignments": [
                    42820
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 42820,
                      "mutability": "mutable",
                      "name": "additionalInformation",
                      "nameLocation": "3201:21:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 42907,
                      "src": "3195:27:118",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 42819,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "3195:5:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 42821,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3195:27:118"
                },
                {
                  "assignments": [
                    42823
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 42823,
                      "mutability": "mutable",
                      "name": "tag",
                      "nameLocation": "3236:3:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 42907,
                      "src": "3229:10:118",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 42822,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "3229:6:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 42825,
                  "initialValue": {
                    "id": 42824,
                    "name": "UINT64_MAX",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42696,
                    "src": "3242:10:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3229:23:118"
                },
                {
                  "assignments": [
                    42827
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 42827,
                      "mutability": "mutable",
                      "name": "len",
                      "nameLocation": "3267:3:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 42907,
                      "src": "3259:11:118",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 42826,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3259:7:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 42828,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3259:11:118"
                },
                {
                  "assignments": [
                    42830
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 42830,
                      "mutability": "mutable",
                      "name": "isTagged",
                      "nameLocation": "3282:8:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 42907,
                      "src": "3277:13:118",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 42829,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "3277:4:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 42832,
                  "initialValue": {
                    "hexValue": "74727565",
                    "id": 42831,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3293:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3277:20:118"
                },
                {
                  "body": {
                    "id": 42884,
                    "nodeType": "Block",
                    "src": "3321:475:118",
                    "statements": [
                      {
                        "expression": {
                          "id": 42838,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 42834,
                            "name": "initialByte",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42813,
                            "src": "3387:11:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "id": 42835,
                                "name": "buffer",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42803,
                                "src": "3401:6:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                  "typeString": "struct WitnetBuffer.Buffer memory"
                                }
                              },
                              "id": 42836,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "3408:9:118",
                              "memberName": "readUint8",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 41701,
                              "src": "3401:16:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_uint8_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                                "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (uint8)"
                              }
                            },
                            "id": 42837,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3401:18:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "3387:32:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "id": 42839,
                        "nodeType": "ExpressionStatement",
                        "src": "3387:32:118"
                      },
                      {
                        "expression": {
                          "id": 42841,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "3428:6:118",
                          "subExpression": {
                            "id": 42840,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42827,
                            "src": "3428:3:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 42842,
                        "nodeType": "ExpressionStatement",
                        "src": "3428:6:118"
                      },
                      {
                        "expression": {
                          "id": 42847,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 42843,
                            "name": "majorType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42816,
                            "src": "3443:9:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 42846,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 42844,
                              "name": "initialByte",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42813,
                              "src": "3455:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "35",
                              "id": 42845,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3470:1:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            },
                            "src": "3455:16:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "3443:28:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "id": 42848,
                        "nodeType": "ExpressionStatement",
                        "src": "3443:28:118"
                      },
                      {
                        "expression": {
                          "id": 42853,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 42849,
                            "name": "additionalInformation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42820,
                            "src": "3480:21:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 42852,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 42850,
                              "name": "initialByte",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42813,
                              "src": "3504:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "hexValue": "30783166",
                              "id": 42851,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3518:4:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_31_by_1",
                                "typeString": "int_const 31"
                              },
                              "value": "0x1f"
                            },
                            "src": "3504:18:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "3480:42:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "id": 42854,
                        "nodeType": "ExpressionStatement",
                        "src": "3480:42:118"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 42857,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 42855,
                            "name": "majorType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42816,
                            "src": "3569:9:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 42856,
                            "name": "MAJOR_TYPE_TAG",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42679,
                            "src": "3582:14:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "3569:27:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 42882,
                          "nodeType": "Block",
                          "src": "3752:37:118",
                          "statements": [
                            {
                              "expression": {
                                "id": 42880,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 42878,
                                  "name": "isTagged",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42830,
                                  "src": "3763:8:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "hexValue": "66616c7365",
                                  "id": 42879,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "bool",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3774:5:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "value": "false"
                                },
                                "src": "3763:16:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 42881,
                              "nodeType": "ExpressionStatement",
                              "src": "3763:16:118"
                            }
                          ]
                        },
                        "id": 42883,
                        "nodeType": "IfStatement",
                        "src": "3565:224:118",
                        "trueBody": {
                          "id": 42877,
                          "nodeType": "Block",
                          "src": "3598:148:118",
                          "statements": [
                            {
                              "assignments": [
                                42859
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 42859,
                                  "mutability": "mutable",
                                  "name": "_cursor",
                                  "nameLocation": "3614:7:118",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 42877,
                                  "src": "3609:12:118",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 42858,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3609:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 42862,
                              "initialValue": {
                                "expression": {
                                  "id": 42860,
                                  "name": "buffer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42803,
                                  "src": "3624:6:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                    "typeString": "struct WitnetBuffer.Buffer memory"
                                  }
                                },
                                "id": 42861,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "3631:6:118",
                                "memberName": "cursor",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 40763,
                                "src": "3624:13:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "3609:28:118"
                            },
                            {
                              "expression": {
                                "id": 42868,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 42863,
                                  "name": "tag",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42823,
                                  "src": "3648:3:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "id": 42865,
                                      "name": "buffer",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 42803,
                                      "src": "3665:6:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                        "typeString": "struct WitnetBuffer.Buffer memory"
                                      }
                                    },
                                    {
                                      "id": 42866,
                                      "name": "additionalInformation",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 42820,
                                      "src": "3673:21:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                        "typeString": "struct WitnetBuffer.Buffer memory"
                                      },
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "id": 42864,
                                    "name": "readLength",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43437,
                                    "src": "3654:10:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                                      "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                                    }
                                  },
                                  "id": 42867,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3654:41:118",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "src": "3648:47:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "id": 42869,
                              "nodeType": "ExpressionStatement",
                              "src": "3648:47:118"
                            },
                            {
                              "expression": {
                                "id": 42875,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 42870,
                                  "name": "len",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42827,
                                  "src": "3706:3:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 42874,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "expression": {
                                      "id": 42871,
                                      "name": "buffer",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 42803,
                                      "src": "3713:6:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                        "typeString": "struct WitnetBuffer.Buffer memory"
                                      }
                                    },
                                    "id": 42872,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "3720:6:118",
                                    "memberName": "cursor",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 40763,
                                    "src": "3713:13:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "-",
                                  "rightExpression": {
                                    "id": 42873,
                                    "name": "_cursor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 42859,
                                    "src": "3729:7:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "3713:23:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "3706:30:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 42876,
                              "nodeType": "ExpressionStatement",
                              "src": "3706:30:118"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "id": 42833,
                    "name": "isTagged",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42830,
                    "src": "3311:8:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 42885,
                  "nodeType": "WhileStatement",
                  "src": "3304:492:118"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 42888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 42886,
                      "name": "majorType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42816,
                      "src": "3806:9:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "id": 42887,
                      "name": "MAJOR_TYPE_CONTENT_FREE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42682,
                      "src": "3818:23:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "3806:35:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 42894,
                  "nodeType": "IfStatement",
                  "src": "3802:96:118",
                  "trueBody": {
                    "id": 42893,
                    "nodeType": "Block",
                    "src": "3843:55:118",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 42890,
                              "name": "majorType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42816,
                              "src": "3880:9:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "id": 42889,
                            "name": "UnsupportedMajorType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42716,
                            "src": "3859:20:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
                              "typeString": "function (uint256) pure returns (error)"
                            }
                          },
                          "id": 42891,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3859:31:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_error",
                            "typeString": "error"
                          }
                        },
                        "id": 42892,
                        "nodeType": "RevertStatement",
                        "src": "3852:38:118"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 42896,
                        "name": "buffer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42803,
                        "src": "3924:6:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "id": 42897,
                        "name": "initialByte",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42813,
                        "src": "3939:11:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "id": 42898,
                        "name": "majorType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42816,
                        "src": "3959:9:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "id": 42899,
                        "name": "additionalInformation",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42820,
                        "src": "3977:21:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 42902,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42827,
                            "src": "4014:3:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 42901,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4007:6:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": {
                            "id": 42900,
                            "name": "uint64",
                            "nodeType": "ElementaryTypeName",
                            "src": "4007:6:118",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 42903,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4007:11:118",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "id": 42904,
                        "name": "tag",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42823,
                        "src": "4027:3:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 42895,
                      "name": "CBOR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42658,
                      "src": "3911:4:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_CBOR_$42658_storage_ptr_$",
                        "typeString": "type(struct WitnetCBOR.CBOR storage pointer)"
                      }
                    },
                    "id": 42905,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3911:126:118",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "functionReturnParameters": 42811,
                  "id": 42906,
                  "nodeType": "Return",
                  "src": "3904:133:118"
                }
              ]
            },
            "documentation": {
              "id": 42800,
              "nodeType": "StructuredDocumentation",
              "src": "2698:308:118",
              "text": "@notice Decode a CBOR structure from raw bytes.\n @dev This is an alternate factory for CBOR instances, which can be later decoded into native EVM types.\n @param buffer A Buffer structure representing a CBOR-encoded value.\n @return A `CBOR` instance containing a partially decoded value."
            },
            "id": 42908,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 42806,
                    "name": "buffer",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42803,
                    "src": "3098:6:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                      "typeString": "struct WitnetBuffer.Buffer memory"
                    }
                  }
                ],
                "id": 42807,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 42805,
                  "name": "notEmpty",
                  "nameLocations": [
                    "3089:8:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42756,
                  "src": "3089:8:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "3089:16:118"
              }
            ],
            "name": "fromBuffer",
            "nameLocation": "3019:10:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 42804,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42803,
                  "mutability": "mutable",
                  "name": "buffer",
                  "nameLocation": "3057:6:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 42908,
                  "src": "3030:33:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                    "typeString": "struct WitnetBuffer.Buffer"
                  },
                  "typeName": {
                    "id": 42802,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42801,
                      "name": "WitnetBuffer.Buffer",
                      "nameLocations": [
                        "3030:12:118",
                        "3043:6:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 40764,
                      "src": "3030:19:118"
                    },
                    "referencedDeclaration": 40764,
                    "src": "3030:19:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Buffer_$40764_storage_ptr",
                      "typeString": "struct WitnetBuffer.Buffer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3029:35:118"
            },
            "returnParameters": {
              "id": 42811,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42810,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 42908,
                  "src": "3120:11:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 42809,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42808,
                      "name": "CBOR",
                      "nameLocations": [
                        "3120:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "3120:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "3120:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3119:13:118"
            },
            "scope": 44174,
            "src": "3010:1033:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 42934,
              "nodeType": "Block",
              "src": "4152:242:118",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "expression": {
                              "id": 42918,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42911,
                              "src": "4188:4:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory"
                              }
                            },
                            "id": 42919,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4193:6:118",
                            "memberName": "buffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 42647,
                            "src": "4188:11:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                              "typeString": "struct WitnetBuffer.Buffer memory"
                            }
                          },
                          "id": 42920,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4200:4:118",
                          "memberName": "fork",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 40848,
                          "src": "4188:16:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_struct$_Buffer_$40764_memory_ptr_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                            "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetBuffer.Buffer memory)"
                          }
                        },
                        "id": 42921,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4188:18:118",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 42922,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42911,
                          "src": "4228:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 42923,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4233:11:118",
                        "memberName": "initialByte",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42649,
                        "src": "4228:16:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "expression": {
                          "id": 42924,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42911,
                          "src": "4264:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 42925,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4269:9:118",
                        "memberName": "majorType",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42651,
                        "src": "4264:14:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "expression": {
                          "id": 42926,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42911,
                          "src": "4310:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 42927,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4315:21:118",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42653,
                        "src": "4310:26:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "expression": {
                          "id": 42928,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42911,
                          "src": "4350:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 42929,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4355:3:118",
                        "memberName": "len",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42655,
                        "src": "4350:8:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "expression": {
                          "id": 42930,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42911,
                          "src": "4372:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 42931,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4377:3:118",
                        "memberName": "tag",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42657,
                        "src": "4372:8:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 42917,
                      "name": "CBOR",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42658,
                      "src": "4166:4:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_CBOR_$42658_storage_ptr_$",
                        "typeString": "type(struct WitnetCBOR.CBOR storage pointer)"
                      }
                    },
                    "id": 42932,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "4180:6:118",
                      "4215:11:118",
                      "4253:9:118",
                      "4287:21:118",
                      "4345:3:118",
                      "4367:3:118"
                    ],
                    "names": [
                      "buffer",
                      "initialByte",
                      "majorType",
                      "additionalInformation",
                      "len",
                      "tag"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "4166:222:118",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "functionReturnParameters": 42916,
                  "id": 42933,
                  "nodeType": "Return",
                  "src": "4159:229:118"
                }
              ]
            },
            "id": 42935,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "fork",
            "nameLocation": "4058:4:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 42912,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42911,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "4086:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 42935,
                  "src": "4063:27:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 42910,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42909,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "4063:10:118",
                        "4074:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "4063:15:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "4063:15:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4062:29:118"
            },
            "returnParameters": {
              "id": 42916,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42915,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 42935,
                  "src": "4125:22:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 42914,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42913,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "4125:10:118",
                        "4136:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "4125:15:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "4125:15:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4124:24:118"
            },
            "scope": 44174,
            "src": "4049:345:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 42958,
              "nodeType": "Block",
              "src": "4498:110:118",
              "statements": [
                {
                  "condition": {
                    "id": 42947,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "4509:11:118",
                    "subExpression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 42944,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42938,
                          "src": "4510:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 42945,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4515:3:118",
                        "memberName": "eof",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42774,
                        "src": "4510:8:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                          "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (bool)"
                        }
                      },
                      "id": 42946,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4510:10:118",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 42956,
                    "nodeType": "Block",
                    "src": "4575:28:118",
                    "statements": [
                      {
                        "expression": {
                          "id": 42954,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42938,
                          "src": "4591:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "functionReturnParameters": 42943,
                        "id": 42955,
                        "nodeType": "Return",
                        "src": "4584:11:118"
                      }
                    ]
                  },
                  "id": 42957,
                  "nodeType": "IfStatement",
                  "src": "4505:98:118",
                  "trueBody": {
                    "id": 42953,
                    "nodeType": "Block",
                    "src": "4522:47:118",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 42949,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42938,
                                "src": "4549:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 42950,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "4554:6:118",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42647,
                              "src": "4549:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            ],
                            "id": 42948,
                            "name": "fromBuffer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42908,
                            "src": "4538:10:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_struct$_CBOR_$42658_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetCBOR.CBOR memory)"
                            }
                          },
                          "id": 42951,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4538:23:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "functionReturnParameters": 42943,
                        "id": 42952,
                        "nodeType": "Return",
                        "src": "4531:30:118"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 42959,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "settle",
            "nameLocation": "4409:6:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 42939,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42938,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "4428:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 42959,
                  "src": "4416:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 42937,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42936,
                      "name": "CBOR",
                      "nameLocations": [
                        "4416:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "4416:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "4416:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4415:18:118"
            },
            "returnParameters": {
              "id": 42943,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42942,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 42959,
                  "src": "4471:22:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 42941,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42940,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "4471:10:118",
                        "4482:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "4471:15:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "4471:15:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4470:24:118"
            },
            "scope": 44174,
            "src": "4400:208:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43078,
              "nodeType": "Block",
              "src": "4710:1039:118",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 42992,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 42976,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 42971,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 42968,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42962,
                            "src": "4729:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 42969,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4734:9:118",
                          "memberName": "majorType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 42651,
                          "src": "4729:14:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 42970,
                          "name": "MAJOR_TYPE_INT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42661,
                          "src": "4747:14:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "src": "4729:32:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 42975,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 42972,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42962,
                            "src": "4774:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 42973,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4779:9:118",
                          "memberName": "majorType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 42651,
                          "src": "4774:14:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 42974,
                          "name": "MAJOR_TYPE_NEGATIVE_INT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42664,
                          "src": "4792:23:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "src": "4774:41:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "4729:86:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 42990,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 42985,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 42980,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 42977,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42962,
                                  "src": "4841:4:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 42978,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "4846:9:118",
                                "memberName": "majorType",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 42651,
                                "src": "4841:14:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "id": 42979,
                                "name": "MAJOR_TYPE_CONTENT_FREE",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42682,
                                "src": "4859:23:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "src": "4841:41:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 42984,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 42981,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42962,
                                  "src": "4900:4:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 42982,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "4905:21:118",
                                "memberName": "additionalInformation",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 42653,
                                "src": "4900:26:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "hexValue": "3235",
                                "id": 42983,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4930:2:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_25_by_1",
                                  "typeString": "int_const 25"
                                },
                                "value": "25"
                              },
                              "src": "4900:32:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "4841:91:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 42989,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 42986,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42962,
                                "src": "4949:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 42987,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "4954:21:118",
                              "memberName": "additionalInformation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42653,
                              "src": "4949:26:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "hexValue": "3237",
                              "id": 42988,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4979:2:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_27_by_1",
                                "typeString": "int_const 27"
                              },
                              "value": "27"
                            },
                            "src": "4949:32:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "4841:140:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 42991,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "4828:164:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4729:263:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 43012,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 43007,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 43004,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42962,
                            "src": "5076:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 43005,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "5081:9:118",
                          "memberName": "majorType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 42651,
                          "src": "5076:14:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 43006,
                          "name": "MAJOR_TYPE_STRING",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42670,
                          "src": "5094:17:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "src": "5076:35:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 43011,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 43008,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42962,
                            "src": "5126:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 43009,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "5131:9:118",
                          "memberName": "majorType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 42651,
                          "src": "5126:14:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 43010,
                          "name": "MAJOR_TYPE_BYTES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42667,
                          "src": "5144:16:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "src": "5126:34:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "5076:84:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 43039,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 43034,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 43031,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42962,
                              "src": "5301:4:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory"
                              }
                            },
                            "id": 43032,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5306:9:118",
                            "memberName": "majorType",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 42651,
                            "src": "5301:14:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 43033,
                            "name": "MAJOR_TYPE_ARRAY",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42673,
                            "src": "5319:16:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "5301:34:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 43038,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 43035,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42962,
                              "src": "5348:4:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory"
                              }
                            },
                            "id": 43036,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5353:9:118",
                            "memberName": "majorType",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 42651,
                            "src": "5348:14:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 43037,
                            "name": "MAJOR_TYPE_MAP",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42676,
                            "src": "5366:14:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "5348:32:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5301:79:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 43066,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 43055,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 43052,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42962,
                                "src": "5493:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43053,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5498:9:118",
                              "memberName": "majorType",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42651,
                              "src": "5493:14:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "id": 43054,
                              "name": "MAJOR_TYPE_CONTENT_FREE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42682,
                              "src": "5511:23:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "src": "5493:41:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "components": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "id": 43064,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 43059,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "expression": {
                                      "id": 43056,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 42962,
                                      "src": "5560:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 43057,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "5565:21:118",
                                    "memberName": "additionalInformation",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 42653,
                                    "src": "5560:26:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "!=",
                                  "rightExpression": {
                                    "hexValue": "3230",
                                    "id": 43058,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5590:2:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_20_by_1",
                                      "typeString": "int_const 20"
                                    },
                                    "value": "20"
                                  },
                                  "src": "5560:32:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "&&",
                                "rightExpression": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 43063,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "expression": {
                                      "id": 43060,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 42962,
                                      "src": "5609:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 43061,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "5614:21:118",
                                    "memberName": "additionalInformation",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 42653,
                                    "src": "5609:26:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "!=",
                                  "rightExpression": {
                                    "hexValue": "3231",
                                    "id": 43062,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5639:2:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_21_by_1",
                                      "typeString": "int_const 21"
                                    },
                                    "value": "21"
                                  },
                                  "src": "5609:32:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "src": "5560:81:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 43065,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "5547:105:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "5493:159:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 43072,
                        "nodeType": "IfStatement",
                        "src": "5480:246:118",
                        "trueBody": {
                          "id": 43071,
                          "nodeType": "Block",
                          "src": "5660:66:118",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "hexValue": "5769746e657443424f522e736b69703a20756e737570706f72746564206d616a6f722074797065",
                                    "id": 43068,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "string",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5676:41:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_stringliteral_92a4e60c9c8a6bab113d51719bd32c972951c92a48fb0ef633db4f8d512f86fe",
                                      "typeString": "literal_string \"WitnetCBOR.skip: unsupported major type\""
                                    },
                                    "value": "WitnetCBOR.skip: unsupported major type"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_stringliteral_92a4e60c9c8a6bab113d51719bd32c972951c92a48fb0ef633db4f8d512f86fe",
                                      "typeString": "literal_string \"WitnetCBOR.skip: unsupported major type\""
                                    }
                                  ],
                                  "id": 43067,
                                  "name": "revert",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    4294967277,
                                    4294967277
                                  ],
                                  "referencedDeclaration": 4294967277,
                                  "src": "5669:6:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                    "typeString": "function (string memory) pure"
                                  }
                                },
                                "id": 43069,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5669:49:118",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 43070,
                              "nodeType": "ExpressionStatement",
                              "src": "5669:49:118"
                            }
                          ]
                        }
                      },
                      "id": 43073,
                      "nodeType": "IfStatement",
                      "src": "5289:437:118",
                      "trueBody": {
                        "id": 43051,
                        "nodeType": "Block",
                        "src": "5388:86:118",
                        "statements": [
                          {
                            "expression": {
                              "id": 43049,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "expression": {
                                  "id": 43040,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42962,
                                  "src": "5398:4:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 43042,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "memberLocation": "5403:3:118",
                                "memberName": "len",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 42655,
                                "src": "5398:8:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 43044,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 42962,
                                      "src": "5420:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 43045,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "5425:6:118",
                                    "memberName": "buffer",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 42647,
                                    "src": "5420:11:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 43046,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 42962,
                                      "src": "5433:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 43047,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "5438:21:118",
                                    "memberName": "additionalInformation",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 42653,
                                    "src": "5433:26:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    },
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 43043,
                                  "name": "readLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 43437,
                                  "src": "5409:10:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                                    "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                                  }
                                },
                                "id": 43048,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5409:51:118",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "src": "5398:62:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            "id": 43050,
                            "nodeType": "ExpressionStatement",
                            "src": "5398:62:118"
                          }
                        ]
                      }
                    },
                    "id": 43074,
                    "nodeType": "IfStatement",
                    "src": "5062:664:118",
                    "trueBody": {
                      "id": 43030,
                      "nodeType": "Block",
                      "src": "5168:115:118",
                      "statements": [
                        {
                          "assignments": [
                            43014
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 43014,
                              "mutability": "mutable",
                              "name": "len",
                              "nameLocation": "5184:3:118",
                              "nodeType": "VariableDeclaration",
                              "scope": 43030,
                              "src": "5177:10:118",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              },
                              "typeName": {
                                "id": 43013,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "5177:6:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 43021,
                          "initialValue": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 43016,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42962,
                                  "src": "5201:4:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 43017,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "5206:6:118",
                                "memberName": "buffer",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 42647,
                                "src": "5201:11:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                  "typeString": "struct WitnetBuffer.Buffer memory"
                                }
                              },
                              {
                                "expression": {
                                  "id": 43018,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42962,
                                  "src": "5214:4:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 43019,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "5219:21:118",
                                "memberName": "additionalInformation",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 42653,
                                "src": "5214:26:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                  "typeString": "struct WitnetBuffer.Buffer memory"
                                },
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 43015,
                              "name": "readLength",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43437,
                              "src": "5190:10:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                                "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                              }
                            },
                            "id": 43020,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5190:51:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "5177:64:118"
                        },
                        {
                          "expression": {
                            "id": 43028,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "expression": {
                                "expression": {
                                  "id": 43022,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42962,
                                  "src": "5250:4:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 43025,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "5255:6:118",
                                "memberName": "buffer",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 42647,
                                "src": "5250:11:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                  "typeString": "struct WitnetBuffer.Buffer memory"
                                }
                              },
                              "id": 43026,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberLocation": "5262:6:118",
                              "memberName": "cursor",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 40763,
                              "src": "5250:18:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "+=",
                            "rightHandSide": {
                              "id": 43027,
                              "name": "len",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43014,
                              "src": "5272:3:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            "src": "5250:25:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 43029,
                          "nodeType": "ExpressionStatement",
                          "src": "5250:25:118"
                        }
                      ]
                    }
                  },
                  "id": 43075,
                  "nodeType": "IfStatement",
                  "src": "4717:1009:118",
                  "trueBody": {
                    "id": 43003,
                    "nodeType": "Block",
                    "src": "5000:56:118",
                    "statements": [
                      {
                        "expression": {
                          "id": 43001,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "expression": {
                                "id": 42993,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42962,
                                "src": "5009:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 42996,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5014:6:118",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42647,
                              "src": "5009:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 42997,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "5021:6:118",
                            "memberName": "cursor",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 40763,
                            "src": "5009:18:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "id": 42998,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42962,
                                "src": "5031:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 42999,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5036:10:118",
                              "memberName": "peekLength",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43119,
                              "src": "5031:15:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                                "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (uint64)"
                              }
                            },
                            "id": 43000,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5031:17:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "5009:39:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 43002,
                        "nodeType": "ExpressionStatement",
                        "src": "5009:39:118"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 43076,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42962,
                    "src": "5739:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "functionReturnParameters": 42967,
                  "id": 43077,
                  "nodeType": "Return",
                  "src": "5732:11:118"
                }
              ]
            },
            "id": 43079,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "skip",
            "nameLocation": "4623:4:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 42963,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42962,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "4640:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43079,
                  "src": "4628:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 42961,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42960,
                      "name": "CBOR",
                      "nameLocations": [
                        "4628:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "4628:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "4628:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4627:18:118"
            },
            "returnParameters": {
              "id": 42967,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42966,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 43079,
                  "src": "4683:22:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 42965,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42964,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "4683:10:118",
                        "4694:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "4683:15:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "4683:15:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4682:24:118"
            },
            "scope": 44174,
            "src": "4614:1135:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43118,
              "nodeType": "Block",
              "src": "5837:266:118",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 43090,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 43087,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43082,
                        "src": "5848:4:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 43088,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5853:21:118",
                      "memberName": "additionalInformation",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42653,
                      "src": "5848:26:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "hexValue": "3234",
                      "id": 43089,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5877:2:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_24_by_1",
                        "typeString": "int_const 24"
                      },
                      "value": "24"
                    },
                    "src": "5848:31:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 43097,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 43094,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 43082,
                          "src": "5916:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43095,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5921:21:118",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42653,
                        "src": "5916:26:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "hexValue": "3238",
                        "id": 43096,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5945:2:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_28_by_1",
                          "typeString": "int_const 28"
                        },
                        "value": "28"
                      },
                      "src": "5916:31:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 43115,
                      "nodeType": "Block",
                      "src": "6025:73:118",
                      "statements": [
                        {
                          "errorCall": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 43111,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 43082,
                                  "src": "6063:4:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 43112,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "6068:21:118",
                                "memberName": "additionalInformation",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 42653,
                                "src": "6063:26:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 43110,
                              "name": "InvalidLengthEncoding",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42702,
                              "src": "6041:21:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
                                "typeString": "function (uint256) pure returns (error)"
                              }
                            },
                            "id": 43113,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6041:49:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_error",
                              "typeString": "error"
                            }
                          },
                          "id": 43114,
                          "nodeType": "RevertStatement",
                          "src": "6034:56:118"
                        }
                      ]
                    },
                    "id": 43116,
                    "nodeType": "IfStatement",
                    "src": "5912:186:118",
                    "trueBody": {
                      "id": 43109,
                      "nodeType": "Block",
                      "src": "5949:70:118",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 43106,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "hexValue": "31",
                                  "id": 43100,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5972:1:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<<",
                                "rightExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 43104,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 43101,
                                          "name": "self",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 43082,
                                          "src": "5978:4:118",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                            "typeString": "struct WitnetCBOR.CBOR memory"
                                          }
                                        },
                                        "id": 43102,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "5983:21:118",
                                        "memberName": "additionalInformation",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 42653,
                                        "src": "5978:26:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "hexValue": "3234",
                                        "id": 43103,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6007:2:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_24_by_1",
                                          "typeString": "int_const 24"
                                        },
                                        "value": "24"
                                      },
                                      "src": "5978:31:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "id": 43105,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "5977:33:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "src": "5972:38:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 43099,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5965:6:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint64_$",
                                "typeString": "type(uint64)"
                              },
                              "typeName": {
                                "id": 43098,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "5965:6:118",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 43107,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5965:46:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "functionReturnParameters": 43086,
                          "id": 43108,
                          "nodeType": "Return",
                          "src": "5958:53:118"
                        }
                      ]
                    }
                  },
                  "id": 43117,
                  "nodeType": "IfStatement",
                  "src": "5844:254:118",
                  "trueBody": {
                    "id": 43093,
                    "nodeType": "Block",
                    "src": "5881:25:118",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "30",
                          "id": 43091,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5897:1:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "functionReturnParameters": 43086,
                        "id": 43092,
                        "nodeType": "Return",
                        "src": "5890:8:118"
                      }
                    ]
                  }
                }
              ]
            },
            "id": 43119,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "peekLength",
            "nameLocation": "5764:10:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43083,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43082,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "5787:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43119,
                  "src": "5775:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 43081,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43080,
                      "name": "CBOR",
                      "nameLocations": [
                        "5775:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "5775:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "5775:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5774:18:118"
            },
            "returnParameters": {
              "id": 43086,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43085,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 43119,
                  "src": "5826:6:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 43084,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "5826:6:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5825:8:118"
            },
            "scope": 44174,
            "src": "5755:348:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43239,
              "nodeType": "Block",
              "src": "6244:1096:118",
              "statements": [
                {
                  "assignments": [
                    43134
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 43134,
                      "mutability": "mutable",
                      "name": "len",
                      "nameLocation": "6343:3:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 43239,
                      "src": "6336:10:118",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 43133,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "6336:6:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 43141,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 43136,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 43122,
                          "src": "6360:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43137,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6365:6:118",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42647,
                        "src": "6360:11:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 43138,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 43122,
                          "src": "6373:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43139,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6378:21:118",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42653,
                        "src": "6373:26:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 43135,
                      "name": "readLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43437,
                      "src": "6349:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                      }
                    },
                    "id": 43140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6349:51:118",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6336:64:118"
                },
                {
                  "expression": {
                    "id": 43151,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 43142,
                      "name": "items",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43131,
                      "src": "6407:5:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 43149,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 43147,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43134,
                            "src": "6426:3:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 43148,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6432:1:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "6426:7:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        ],
                        "id": 43146,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "6415:10:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 43144,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 43143,
                              "name": "CBOR",
                              "nameLocations": [
                                "6419:4:118"
                              ],
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 42658,
                              "src": "6419:4:118"
                            },
                            "referencedDeclaration": 42658,
                            "src": "6419:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                              "typeString": "struct WitnetCBOR.CBOR"
                            }
                          },
                          "id": 43145,
                          "nodeType": "ArrayTypeName",
                          "src": "6419:6:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_storage_$dyn_storage_ptr",
                            "typeString": "struct WitnetCBOR.CBOR[]"
                          }
                        }
                      },
                      "id": 43150,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6415:19:118",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                      }
                    },
                    "src": "6407:27:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                    }
                  },
                  "id": 43152,
                  "nodeType": "ExpressionStatement",
                  "src": "6407:27:118"
                },
                {
                  "body": {
                    "id": 43231,
                    "nodeType": "Block",
                    "src": "6476:704:118",
                    "statements": [
                      {
                        "expression": {
                          "id": 43167,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 43163,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43122,
                            "src": "6529:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "id": 43164,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43122,
                                "src": "6536:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43165,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "6541:6:118",
                              "memberName": "settle",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42959,
                              "src": "6536:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_struct$_CBOR_$42658_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                                "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory)"
                              }
                            },
                            "id": 43166,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6536:13:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "src": "6529:20:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43168,
                        "nodeType": "ExpressionStatement",
                        "src": "6529:20:118"
                      },
                      {
                        "expression": {
                          "id": 43175,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 43169,
                              "name": "items",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43131,
                              "src": "6623:5:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                              }
                            },
                            "id": 43171,
                            "indexExpression": {
                              "id": 43170,
                              "name": "ix",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43154,
                              "src": "6629:2:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "6623:9:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "id": 43172,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43122,
                                "src": "6635:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43173,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "6640:4:118",
                              "memberName": "fork",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42935,
                              "src": "6635:9:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_struct$_CBOR_$42658_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                                "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory)"
                              }
                            },
                            "id": 43174,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6635:11:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "src": "6623:23:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43176,
                        "nodeType": "ExpressionStatement",
                        "src": "6623:23:118"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 43180,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 43177,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43122,
                              "src": "6659:4:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory"
                              }
                            },
                            "id": 43178,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6664:9:118",
                            "memberName": "majorType",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 42651,
                            "src": "6659:14:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 43179,
                            "name": "MAJOR_TYPE_ARRAY",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42673,
                            "src": "6677:16:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "6659:34:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 43203,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 43200,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43122,
                                "src": "6882:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43201,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "6887:9:118",
                              "memberName": "majorType",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42651,
                              "src": "6882:14:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "id": 43202,
                              "name": "MAJOR_TYPE_MAP",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42676,
                              "src": "6900:14:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "src": "6882:32:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 43228,
                            "nodeType": "Block",
                            "src": "7095:78:118",
                            "statements": [
                              {
                                "expression": {
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "id": 43223,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43122,
                                      "src": "7152:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 43225,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "7157:4:118",
                                    "memberName": "skip",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 43079,
                                    "src": "7152:9:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_struct$_CBOR_$42658_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                    }
                                  },
                                  "id": 43226,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "7152:11:118",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 43227,
                                "nodeType": "ExpressionStatement",
                                "src": "7152:11:118"
                              }
                            ]
                          },
                          "id": 43229,
                          "nodeType": "IfStatement",
                          "src": "6878:295:118",
                          "trueBody": {
                            "id": 43222,
                            "nodeType": "Block",
                            "src": "6916:173:118",
                            "statements": [
                              {
                                "assignments": [
                                  43208
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 43208,
                                    "mutability": "mutable",
                                    "name": "_subitems",
                                    "nameLocation": "6941:9:118",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 43222,
                                    "src": "6927:23:118",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR[]"
                                    },
                                    "typeName": {
                                      "baseType": {
                                        "id": 43206,
                                        "nodeType": "UserDefinedTypeName",
                                        "pathNode": {
                                          "id": 43205,
                                          "name": "CBOR",
                                          "nameLocations": [
                                            "6927:4:118"
                                          ],
                                          "nodeType": "IdentifierPath",
                                          "referencedDeclaration": 42658,
                                          "src": "6927:4:118"
                                        },
                                        "referencedDeclaration": 42658,
                                        "src": "6927:4:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                                          "typeString": "struct WitnetCBOR.CBOR"
                                        }
                                      },
                                      "id": 43207,
                                      "nodeType": "ArrayTypeName",
                                      "src": "6927:6:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_storage_$dyn_storage_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR[]"
                                      }
                                    },
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 43212,
                                "initialValue": {
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "id": 43209,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43122,
                                      "src": "6953:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 43210,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "6958:7:118",
                                    "memberName": "readMap",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 43371,
                                    "src": "6953:12:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                                    }
                                  },
                                  "id": 43211,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6953:14:118",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                  }
                                },
                                "nodeType": "VariableDeclarationStatement",
                                "src": "6927:40:118"
                              },
                              {
                                "expression": {
                                  "id": 43220,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 43213,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43122,
                                    "src": "7041:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "baseExpression": {
                                      "id": 43214,
                                      "name": "_subitems",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43208,
                                      "src": "7048:9:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                      }
                                    },
                                    "id": 43219,
                                    "indexExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 43218,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 43215,
                                          "name": "_subitems",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 43208,
                                          "src": "7058:9:118",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                            "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                          }
                                        },
                                        "id": 43216,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "7068:6:118",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "7058:16:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "hexValue": "31",
                                        "id": 43217,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7077:1:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "7058:20:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "7048:31:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "src": "7041:38:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 43221,
                                "nodeType": "ExpressionStatement",
                                "src": "7041:38:118"
                              }
                            ]
                          }
                        },
                        "id": 43230,
                        "nodeType": "IfStatement",
                        "src": "6655:518:118",
                        "trueBody": {
                          "id": 43199,
                          "nodeType": "Block",
                          "src": "6695:177:118",
                          "statements": [
                            {
                              "assignments": [
                                43185
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 43185,
                                  "mutability": "mutable",
                                  "name": "_subitems",
                                  "nameLocation": "6720:9:118",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 43199,
                                  "src": "6706:23:118",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR[]"
                                  },
                                  "typeName": {
                                    "baseType": {
                                      "id": 43183,
                                      "nodeType": "UserDefinedTypeName",
                                      "pathNode": {
                                        "id": 43182,
                                        "name": "CBOR",
                                        "nameLocations": [
                                          "6706:4:118"
                                        ],
                                        "nodeType": "IdentifierPath",
                                        "referencedDeclaration": 42658,
                                        "src": "6706:4:118"
                                      },
                                      "referencedDeclaration": 42658,
                                      "src": "6706:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR"
                                      }
                                    },
                                    "id": 43184,
                                    "nodeType": "ArrayTypeName",
                                    "src": "6706:6:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_storage_$dyn_storage_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR[]"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 43189,
                              "initialValue": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "id": 43186,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43122,
                                    "src": "6732:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "id": 43187,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "6737:9:118",
                                  "memberName": "readArray",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 43240,
                                  "src": "6732:14:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                                    "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                                  }
                                },
                                "id": 43188,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6732:16:118",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "6706:42:118"
                            },
                            {
                              "expression": {
                                "id": 43197,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 43190,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 43122,
                                  "src": "6824:4:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "baseExpression": {
                                    "id": 43191,
                                    "name": "_subitems",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43185,
                                    "src": "6831:9:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                    }
                                  },
                                  "id": 43196,
                                  "indexExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 43195,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "expression": {
                                        "id": 43192,
                                        "name": "_subitems",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 43185,
                                        "src": "6841:9:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                          "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                        }
                                      },
                                      "id": 43193,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "6851:6:118",
                                      "memberName": "length",
                                      "nodeType": "MemberAccess",
                                      "src": "6841:16:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "hexValue": "31",
                                      "id": 43194,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6860:1:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "src": "6841:20:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "6831:31:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "src": "6824:38:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43198,
                              "nodeType": "ExpressionStatement",
                              "src": "6824:38:118"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 43159,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 43157,
                      "name": "ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43154,
                      "src": "6459:2:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 43158,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43134,
                      "src": "6464:3:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "6459:8:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 43232,
                  "initializationExpression": {
                    "assignments": [
                      43154
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 43154,
                        "mutability": "mutable",
                        "name": "ix",
                        "nameLocation": "6451:2:118",
                        "nodeType": "VariableDeclaration",
                        "scope": 43232,
                        "src": "6446:7:118",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 43153,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "6446:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 43156,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 43155,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6456:1:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "6446:11:118"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 43161,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "6469:5:118",
                      "subExpression": {
                        "id": 43160,
                        "name": "ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43154,
                        "src": "6469:2:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 43162,
                    "nodeType": "ExpressionStatement",
                    "src": "6469:5:118"
                  },
                  "nodeType": "ForStatement",
                  "src": "6441:739:118"
                },
                {
                  "expression": {
                    "id": 43237,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 43233,
                        "name": "items",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43131,
                        "src": "7317:5:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                        }
                      },
                      "id": 43235,
                      "indexExpression": {
                        "id": 43234,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43134,
                        "src": "7323:3:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7317:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 43236,
                      "name": "self",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43122,
                      "src": "7330:4:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory"
                      }
                    },
                    "src": "7317:17:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "id": 43238,
                  "nodeType": "ExpressionStatement",
                  "src": "7317:17:118"
                }
              ]
            },
            "id": 43240,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 43125,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 43122,
                    "src": "6182:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 43126,
                    "name": "MAJOR_TYPE_ARRAY",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42673,
                    "src": "6188:16:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 43127,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 43124,
                  "name": "isMajorType",
                  "nameLocations": [
                    "6170:11:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42737,
                  "src": "6170:11:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "6170:35:118"
              }
            ],
            "name": "readArray",
            "nameLocation": "6118:9:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43123,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43122,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "6140:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43240,
                  "src": "6128:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 43121,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43120,
                      "name": "CBOR",
                      "nameLocations": [
                        "6128:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "6128:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "6128:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6127:18:118"
            },
            "returnParameters": {
              "id": 43132,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43131,
                  "mutability": "mutable",
                  "name": "items",
                  "nameLocation": "6234:5:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43240,
                  "src": "6220:19:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 43129,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 43128,
                        "name": "CBOR",
                        "nameLocations": [
                          "6220:4:118"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 42658,
                        "src": "6220:4:118"
                      },
                      "referencedDeclaration": 42658,
                      "src": "6220:4:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                        "typeString": "struct WitnetCBOR.CBOR"
                      }
                    },
                    "id": 43130,
                    "nodeType": "ArrayTypeName",
                    "src": "6220:6:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_storage_$dyn_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6219:21:118"
            },
            "scope": 44174,
            "src": "6109:1231:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43370,
              "nodeType": "Block",
              "src": "7477:1178:118",
              "statements": [
                {
                  "assignments": [
                    43255
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 43255,
                      "mutability": "mutable",
                      "name": "len",
                      "nameLocation": "7592:3:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 43370,
                      "src": "7585:10:118",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 43254,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "7585:6:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 43264,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 43263,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 43257,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43243,
                            "src": "7609:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 43258,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "7614:6:118",
                          "memberName": "buffer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 42647,
                          "src": "7609:11:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          }
                        },
                        {
                          "expression": {
                            "id": 43259,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43243,
                            "src": "7622:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 43260,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "7627:21:118",
                          "memberName": "additionalInformation",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 42653,
                          "src": "7622:26:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          },
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 43256,
                        "name": "readLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43437,
                        "src": "7598:10:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                          "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                        }
                      },
                      "id": 43261,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7598:51:118",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "*",
                    "rightExpression": {
                      "hexValue": "32",
                      "id": 43262,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7652:1:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_2_by_1",
                        "typeString": "int_const 2"
                      },
                      "value": "2"
                    },
                    "src": "7598:55:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7585:68:118"
                },
                {
                  "expression": {
                    "id": 43274,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 43265,
                      "name": "items",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43252,
                      "src": "7660:5:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 43272,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 43270,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43255,
                            "src": "7679:3:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 43271,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7685:1:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "7679:7:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        ],
                        "id": 43269,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "7668:10:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 43267,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 43266,
                              "name": "CBOR",
                              "nameLocations": [
                                "7672:4:118"
                              ],
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 42658,
                              "src": "7672:4:118"
                            },
                            "referencedDeclaration": 42658,
                            "src": "7672:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                              "typeString": "struct WitnetCBOR.CBOR"
                            }
                          },
                          "id": 43268,
                          "nodeType": "ArrayTypeName",
                          "src": "7672:6:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_storage_$dyn_storage_ptr",
                            "typeString": "struct WitnetCBOR.CBOR[]"
                          }
                        }
                      },
                      "id": 43273,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7668:19:118",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                      }
                    },
                    "src": "7660:27:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                    }
                  },
                  "id": 43275,
                  "nodeType": "ExpressionStatement",
                  "src": "7660:27:118"
                },
                {
                  "body": {
                    "id": 43362,
                    "nodeType": "Block",
                    "src": "7729:766:118",
                    "statements": [
                      {
                        "expression": {
                          "id": 43290,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 43286,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43243,
                            "src": "7782:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "id": 43287,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43243,
                                "src": "7789:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43288,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "7794:6:118",
                              "memberName": "settle",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42959,
                              "src": "7789:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_struct$_CBOR_$42658_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                                "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory)"
                              }
                            },
                            "id": 43289,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7789:13:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "src": "7782:20:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43291,
                        "nodeType": "ExpressionStatement",
                        "src": "7782:20:118"
                      },
                      {
                        "expression": {
                          "id": 43298,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 43292,
                              "name": "items",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43252,
                              "src": "7876:5:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                              }
                            },
                            "id": 43294,
                            "indexExpression": {
                              "id": 43293,
                              "name": "ix",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43277,
                              "src": "7882:2:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7876:9:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "id": 43295,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43243,
                                "src": "7888:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43296,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "7893:4:118",
                              "memberName": "fork",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42935,
                              "src": "7888:9:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_struct$_CBOR_$42658_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                                "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory)"
                              }
                            },
                            "id": 43297,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7888:11:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "src": "7876:23:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43299,
                        "nodeType": "ExpressionStatement",
                        "src": "7876:23:118"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 43309,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 43304,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 43302,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 43300,
                                "name": "ix",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43277,
                                "src": "7912:2:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "%",
                              "rightExpression": {
                                "hexValue": "32",
                                "id": 43301,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7917:1:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "7912:6:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 43303,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7922:1:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "7912:11:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 43308,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 43305,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43243,
                                "src": "7927:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43306,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "7932:9:118",
                              "memberName": "majorType",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42651,
                              "src": "7927:14:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "id": 43307,
                              "name": "MAJOR_TYPE_STRING",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42670,
                              "src": "7945:17:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "src": "7927:35:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "7912:50:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 43325,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 43320,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 43317,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 43243,
                                  "src": "8056:4:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 43318,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "8061:9:118",
                                "memberName": "majorType",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 42651,
                                "src": "8056:14:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "id": 43319,
                                "name": "MAJOR_TYPE_ARRAY",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42673,
                                "src": "8074:16:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "src": "8056:34:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "||",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 43324,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 43321,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 43243,
                                  "src": "8094:4:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 43322,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "8099:9:118",
                                "memberName": "majorType",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 42651,
                                "src": "8094:14:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "id": 43323,
                                "name": "MAJOR_TYPE_MAP",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42676,
                                "src": "8112:14:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "src": "8094:32:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "8056:70:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 43359,
                            "nodeType": "Block",
                            "src": "8410:78:118",
                            "statements": [
                              {
                                "expression": {
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "id": 43354,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43243,
                                      "src": "8467:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 43356,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "8472:4:118",
                                    "memberName": "skip",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 43079,
                                    "src": "8467:9:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_struct$_CBOR_$42658_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                    }
                                  },
                                  "id": 43357,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "8467:11:118",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 43358,
                                "nodeType": "ExpressionStatement",
                                "src": "8467:11:118"
                              }
                            ]
                          },
                          "id": 43360,
                          "nodeType": "IfStatement",
                          "src": "8052:436:118",
                          "trueBody": {
                            "id": 43353,
                            "nodeType": "Block",
                            "src": "8128:276:118",
                            "statements": [
                              {
                                "assignments": [
                                  43330
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 43330,
                                    "mutability": "mutable",
                                    "name": "_subitems",
                                    "nameLocation": "8153:9:118",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 43353,
                                    "src": "8139:23:118",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR[]"
                                    },
                                    "typeName": {
                                      "baseType": {
                                        "id": 43328,
                                        "nodeType": "UserDefinedTypeName",
                                        "pathNode": {
                                          "id": 43327,
                                          "name": "CBOR",
                                          "nameLocations": [
                                            "8139:4:118"
                                          ],
                                          "nodeType": "IdentifierPath",
                                          "referencedDeclaration": 42658,
                                          "src": "8139:4:118"
                                        },
                                        "referencedDeclaration": 42658,
                                        "src": "8139:4:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                                          "typeString": "struct WitnetCBOR.CBOR"
                                        }
                                      },
                                      "id": 43329,
                                      "nodeType": "ArrayTypeName",
                                      "src": "8139:6:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_storage_$dyn_storage_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR[]"
                                      }
                                    },
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 43343,
                                "initialValue": {
                                  "components": [
                                    {
                                      "condition": {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 43334,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "expression": {
                                            "id": 43331,
                                            "name": "self",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 43243,
                                            "src": "8166:4:118",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                              "typeString": "struct WitnetCBOR.CBOR memory"
                                            }
                                          },
                                          "id": 43332,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "8171:9:118",
                                          "memberName": "majorType",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 42651,
                                          "src": "8166:14:118",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                          "id": 43333,
                                          "name": "MAJOR_TYPE_ARRAY",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 42673,
                                          "src": "8184:16:118",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "src": "8166:34:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "falseExpression": {
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "expression": {
                                            "id": 43338,
                                            "name": "self",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 43243,
                                            "src": "8248:4:118",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                              "typeString": "struct WitnetCBOR.CBOR memory"
                                            }
                                          },
                                          "id": 43339,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "8253:7:118",
                                          "memberName": "readMap",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 43371,
                                          "src": "8248:12:118",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                                            "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                                          }
                                        },
                                        "id": 43340,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8248:14:118",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                          "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                        }
                                      },
                                      "id": 43341,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "Conditional",
                                      "src": "8166:96:118",
                                      "trueExpression": {
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "expression": {
                                            "id": 43335,
                                            "name": "self",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 43243,
                                            "src": "8216:4:118",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                              "typeString": "struct WitnetCBOR.CBOR memory"
                                            }
                                          },
                                          "id": 43336,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "8221:9:118",
                                          "memberName": "readArray",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 43240,
                                          "src": "8216:14:118",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$42658_memory_ptr_$",
                                            "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                                          }
                                        },
                                        "id": 43337,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8216:16:118",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                          "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                      }
                                    }
                                  ],
                                  "id": 43342,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "8165:108:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                  }
                                },
                                "nodeType": "VariableDeclarationStatement",
                                "src": "8139:134:118"
                              },
                              {
                                "expression": {
                                  "id": 43351,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 43344,
                                    "name": "self",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43243,
                                    "src": "8356:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "baseExpression": {
                                      "id": 43345,
                                      "name": "_subitems",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43330,
                                      "src": "8363:9:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                      }
                                    },
                                    "id": 43350,
                                    "indexExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 43349,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 43346,
                                          "name": "_subitems",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 43330,
                                          "src": "8373:9:118",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                                            "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                                          }
                                        },
                                        "id": 43347,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "8383:6:118",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "8373:16:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "hexValue": "31",
                                        "id": 43348,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "8392:1:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "8373:20:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "8363:31:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "src": "8356:38:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 43352,
                                "nodeType": "ExpressionStatement",
                                "src": "8356:38:118"
                              }
                            ]
                          }
                        },
                        "id": 43361,
                        "nodeType": "IfStatement",
                        "src": "7908:580:118",
                        "trueBody": {
                          "id": 43316,
                          "nodeType": "Block",
                          "src": "7964:82:118",
                          "statements": [
                            {
                              "errorCall": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 43311,
                                      "name": "self",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43243,
                                      "src": "8002:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 43312,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "8007:9:118",
                                    "memberName": "majorType",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 42651,
                                    "src": "8002:14:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  {
                                    "id": 43313,
                                    "name": "MAJOR_TYPE_STRING",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 42670,
                                    "src": "8018:17:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    },
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 43310,
                                  "name": "UnexpectedMajorType",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42708,
                                  "src": "7982:19:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$",
                                    "typeString": "function (uint256,uint256) pure returns (error)"
                                  }
                                },
                                "id": 43314,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7982:54:118",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_error",
                                  "typeString": "error"
                                }
                              },
                              "id": 43315,
                              "nodeType": "RevertStatement",
                              "src": "7975:61:118"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 43282,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 43280,
                      "name": "ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43277,
                      "src": "7712:2:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 43281,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43255,
                      "src": "7717:3:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "7712:8:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 43363,
                  "initializationExpression": {
                    "assignments": [
                      43277
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 43277,
                        "mutability": "mutable",
                        "name": "ix",
                        "nameLocation": "7704:2:118",
                        "nodeType": "VariableDeclaration",
                        "scope": 43363,
                        "src": "7699:7:118",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 43276,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "7699:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 43279,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 43278,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7709:1:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7699:11:118"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 43284,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7722:5:118",
                      "subExpression": {
                        "id": 43283,
                        "name": "ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43277,
                        "src": "7722:2:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 43285,
                    "nodeType": "ExpressionStatement",
                    "src": "7722:5:118"
                  },
                  "nodeType": "ForStatement",
                  "src": "7694:801:118"
                },
                {
                  "expression": {
                    "id": 43368,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 43364,
                        "name": "items",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43252,
                        "src": "8632:5:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                        }
                      },
                      "id": 43366,
                      "indexExpression": {
                        "id": 43365,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43255,
                        "src": "8638:3:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "8632:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 43367,
                      "name": "self",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43243,
                      "src": "8645:4:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR memory"
                      }
                    },
                    "src": "8632:17:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "id": 43369,
                  "nodeType": "ExpressionStatement",
                  "src": "8632:17:118"
                }
              ]
            },
            "id": 43371,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 43246,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 43243,
                    "src": "7417:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 43247,
                    "name": "MAJOR_TYPE_MAP",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42676,
                    "src": "7423:14:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 43248,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 43245,
                  "name": "isMajorType",
                  "nameLocations": [
                    "7405:11:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42737,
                  "src": "7405:11:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "7405:33:118"
              }
            ],
            "name": "readMap",
            "nameLocation": "7355:7:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43244,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43243,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "7375:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43371,
                  "src": "7363:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 43242,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43241,
                      "name": "CBOR",
                      "nameLocations": [
                        "7363:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "7363:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "7363:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7362:18:118"
            },
            "returnParameters": {
              "id": 43253,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43252,
                  "mutability": "mutable",
                  "name": "items",
                  "nameLocation": "7467:5:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43371,
                  "src": "7453:19:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 43250,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 43249,
                        "name": "CBOR",
                        "nameLocations": [
                          "7453:4:118"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 42658,
                        "src": "7453:4:118"
                      },
                      "referencedDeclaration": 42658,
                      "src": "7453:4:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                        "typeString": "struct WitnetCBOR.CBOR"
                      }
                    },
                    "id": 43251,
                    "nodeType": "ArrayTypeName",
                    "src": "7453:6:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_CBOR_$42658_storage_$dyn_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7452:21:118"
            },
            "scope": 44174,
            "src": "7346:1309:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43436,
              "nodeType": "Block",
              "src": "8983:547:118",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 43384,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 43382,
                      "name": "additionalInformation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43377,
                      "src": "8994:21:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "hexValue": "3234",
                      "id": 43383,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9018:2:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_24_by_1",
                        "typeString": "int_const 24"
                      },
                      "value": "24"
                    },
                    "src": "8994:26:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 43388,
                  "nodeType": "IfStatement",
                  "src": "8990:77:118",
                  "trueBody": {
                    "id": 43387,
                    "nodeType": "Block",
                    "src": "9022:45:118",
                    "statements": [
                      {
                        "expression": {
                          "id": 43385,
                          "name": "additionalInformation",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 43377,
                          "src": "9038:21:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "functionReturnParameters": 43381,
                        "id": 43386,
                        "nodeType": "Return",
                        "src": "9031:28:118"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 43391,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 43389,
                      "name": "additionalInformation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43377,
                      "src": "9077:21:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3234",
                      "id": 43390,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9102:2:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_24_by_1",
                        "typeString": "int_const 24"
                      },
                      "value": "24"
                    },
                    "src": "9077:27:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 43397,
                  "nodeType": "IfStatement",
                  "src": "9073:75:118",
                  "trueBody": {
                    "id": 43396,
                    "nodeType": "Block",
                    "src": "9106:42:118",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 43392,
                              "name": "buffer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43375,
                              "src": "9122:6:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 43393,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9129:9:118",
                            "memberName": "readUint8",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 41701,
                            "src": "9122:16:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_uint8_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (uint8)"
                            }
                          },
                          "id": 43394,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9122:18:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "functionReturnParameters": 43381,
                        "id": 43395,
                        "nodeType": "Return",
                        "src": "9115:25:118"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 43400,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 43398,
                      "name": "additionalInformation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43377,
                      "src": "9158:21:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3235",
                      "id": 43399,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9183:2:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_25_by_1",
                        "typeString": "int_const 25"
                      },
                      "value": "25"
                    },
                    "src": "9158:27:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 43406,
                  "nodeType": "IfStatement",
                  "src": "9154:76:118",
                  "trueBody": {
                    "id": 43405,
                    "nodeType": "Block",
                    "src": "9187:43:118",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 43401,
                              "name": "buffer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43375,
                              "src": "9203:6:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 43402,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9210:10:118",
                            "memberName": "readUint16",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 41737,
                            "src": "9203:17:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_uint16_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (uint16)"
                            }
                          },
                          "id": 43403,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9203:19:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "functionReturnParameters": 43381,
                        "id": 43404,
                        "nodeType": "Return",
                        "src": "9196:26:118"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 43409,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 43407,
                      "name": "additionalInformation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43377,
                      "src": "9240:21:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3236",
                      "id": 43408,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9265:2:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_26_by_1",
                        "typeString": "int_const 26"
                      },
                      "value": "26"
                    },
                    "src": "9240:27:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 43415,
                  "nodeType": "IfStatement",
                  "src": "9236:76:118",
                  "trueBody": {
                    "id": 43414,
                    "nodeType": "Block",
                    "src": "9269:43:118",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 43410,
                              "name": "buffer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43375,
                              "src": "9285:6:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 43411,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9292:10:118",
                            "memberName": "readUint32",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 41773,
                            "src": "9285:17:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_uint32_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (uint32)"
                            }
                          },
                          "id": 43412,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9285:19:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "functionReturnParameters": 43381,
                        "id": 43413,
                        "nodeType": "Return",
                        "src": "9278:26:118"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 43418,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 43416,
                      "name": "additionalInformation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43377,
                      "src": "9322:21:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3237",
                      "id": 43417,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9347:2:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_27_by_1",
                        "typeString": "int_const 27"
                      },
                      "value": "27"
                    },
                    "src": "9322:27:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 43424,
                  "nodeType": "IfStatement",
                  "src": "9318:76:118",
                  "trueBody": {
                    "id": 43423,
                    "nodeType": "Block",
                    "src": "9351:43:118",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 43419,
                              "name": "buffer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43375,
                              "src": "9367:6:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 43420,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9374:10:118",
                            "memberName": "readUint64",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 41809,
                            "src": "9367:17:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (uint64)"
                            }
                          },
                          "id": 43421,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9367:19:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "functionReturnParameters": 43381,
                        "id": 43422,
                        "nodeType": "Return",
                        "src": "9360:26:118"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 43427,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 43425,
                      "name": "additionalInformation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43377,
                      "src": "9404:21:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3331",
                      "id": 43426,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9429:2:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_31_by_1",
                        "typeString": "int_const 31"
                      },
                      "value": "31"
                    },
                    "src": "9404:27:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 43431,
                  "nodeType": "IfStatement",
                  "src": "9400:67:118",
                  "trueBody": {
                    "id": 43430,
                    "nodeType": "Block",
                    "src": "9433:34:118",
                    "statements": [
                      {
                        "expression": {
                          "id": 43428,
                          "name": "UINT64_MAX",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42696,
                          "src": "9449:10:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "functionReturnParameters": 43381,
                        "id": 43429,
                        "nodeType": "Return",
                        "src": "9442:17:118"
                      }
                    ]
                  }
                },
                {
                  "errorCall": {
                    "arguments": [
                      {
                        "id": 43433,
                        "name": "additionalInformation",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43377,
                        "src": "9502:21:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 43432,
                      "name": "InvalidLengthEncoding",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42702,
                      "src": "9480:21:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
                        "typeString": "function (uint256) pure returns (error)"
                      }
                    },
                    "id": 43434,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9480:44:118",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_error",
                      "typeString": "error"
                    }
                  },
                  "id": 43435,
                  "nodeType": "RevertStatement",
                  "src": "9473:51:118"
                }
              ]
            },
            "documentation": {
              "id": 43372,
              "nodeType": "StructuredDocumentation",
              "src": "8661:168:118",
              "text": "Reads the length of the settle CBOR item from a buffer, consuming a different number of bytes depending on the\n value of the `additionalInformation` argument."
            },
            "id": 43437,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "readLength",
            "nameLocation": "8842:10:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43378,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43375,
                  "mutability": "mutable",
                  "name": "buffer",
                  "nameLocation": "8888:6:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43437,
                  "src": "8861:33:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                    "typeString": "struct WitnetBuffer.Buffer"
                  },
                  "typeName": {
                    "id": 43374,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43373,
                      "name": "WitnetBuffer.Buffer",
                      "nameLocations": [
                        "8861:12:118",
                        "8874:6:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 40764,
                      "src": "8861:19:118"
                    },
                    "referencedDeclaration": 40764,
                    "src": "8861:19:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Buffer_$40764_storage_ptr",
                      "typeString": "struct WitnetBuffer.Buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43377,
                  "mutability": "mutable",
                  "name": "additionalInformation",
                  "nameLocation": "8909:21:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43437,
                  "src": "8903:27:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 43376,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "8903:5:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8852:85:118"
            },
            "returnParameters": {
              "id": 43381,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43380,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 43437,
                  "src": "8972:6:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 43379,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "8972:6:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8971:8:118"
            },
            "scope": 44174,
            "src": "8833:697:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43472,
              "nodeType": "Block",
              "src": "9841:229:118",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 43453,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 43450,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43441,
                        "src": "9852:4:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 43451,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "9857:21:118",
                      "memberName": "additionalInformation",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42653,
                      "src": "9852:26:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3230",
                      "id": 43452,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9882:2:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_20_by_1",
                        "typeString": "int_const 20"
                      },
                      "value": "20"
                    },
                    "src": "9852:32:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 43460,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 43457,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 43441,
                          "src": "9925:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43458,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "9930:21:118",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42653,
                        "src": "9925:26:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "3231",
                        "id": 43459,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9955:2:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_21_by_1",
                          "typeString": "int_const 21"
                        },
                        "value": "21"
                      },
                      "src": "9925:32:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 43469,
                      "nodeType": "Block",
                      "src": "9993:72:118",
                      "statements": [
                        {
                          "errorCall": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 43465,
                                  "name": "cbor",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 43441,
                                  "src": "10030:4:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 43466,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10035:21:118",
                                "memberName": "additionalInformation",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 42653,
                                "src": "10030:26:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 43464,
                              "name": "UnsupportedPrimitive",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42712,
                              "src": "10009:20:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
                                "typeString": "function (uint256) pure returns (error)"
                              }
                            },
                            "id": 43467,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10009:48:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_error",
                              "typeString": "error"
                            }
                          },
                          "id": 43468,
                          "nodeType": "RevertStatement",
                          "src": "10002:55:118"
                        }
                      ]
                    },
                    "id": 43470,
                    "nodeType": "IfStatement",
                    "src": "9921:144:118",
                    "trueBody": {
                      "id": 43463,
                      "nodeType": "Block",
                      "src": "9959:28:118",
                      "statements": [
                        {
                          "expression": {
                            "hexValue": "74727565",
                            "id": 43461,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9975:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "functionReturnParameters": 43449,
                          "id": 43462,
                          "nodeType": "Return",
                          "src": "9968:11:118"
                        }
                      ]
                    }
                  },
                  "id": 43471,
                  "nodeType": "IfStatement",
                  "src": "9848:217:118",
                  "trueBody": {
                    "id": 43456,
                    "nodeType": "Block",
                    "src": "9886:29:118",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "66616c7365",
                          "id": 43454,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9902:5:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 43449,
                        "id": 43455,
                        "nodeType": "Return",
                        "src": "9895:12:118"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 43438,
              "nodeType": "StructuredDocumentation",
              "src": "9536:175:118",
              "text": "@notice Read a `CBOR` structure into a native `bool` value.\n @param cbor An instance of `CBOR`.\n @return The value represented by the input, as a `bool` value."
            },
            "id": 43473,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 43444,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 43441,
                    "src": "9787:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 43445,
                    "name": "MAJOR_TYPE_CONTENT_FREE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42682,
                    "src": "9793:23:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 43446,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 43443,
                  "name": "isMajorType",
                  "nameLocations": [
                    "9775:11:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42737,
                  "src": "9775:11:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "9775:42:118"
              }
            ],
            "name": "readBool",
            "nameLocation": "9724:8:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43442,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43441,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "9745:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43473,
                  "src": "9733:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 43440,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43439,
                      "name": "CBOR",
                      "nameLocations": [
                        "9733:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "9733:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "9733:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9732:18:118"
            },
            "returnParameters": {
              "id": 43449,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43448,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 43473,
                  "src": "9832:4:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 43447,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9832:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9831:6:118"
            },
            "scope": 44174,
            "src": "9715:355:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43571,
              "nodeType": "Block",
              "src": "10404:786:118",
              "statements": [
                {
                  "expression": {
                    "id": 43495,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 43486,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43477,
                        "src": "10411:4:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 43488,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "10416:3:118",
                      "memberName": "len",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42655,
                      "src": "10411:8:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 43490,
                            "name": "cbor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43477,
                            "src": "10441:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 43491,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10446:6:118",
                          "memberName": "buffer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 42647,
                          "src": "10441:11:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          }
                        },
                        {
                          "expression": {
                            "id": 43492,
                            "name": "cbor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43477,
                            "src": "10461:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 43493,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10466:21:118",
                          "memberName": "additionalInformation",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 42653,
                          "src": "10461:26:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          },
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 43489,
                        "name": "readLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43437,
                        "src": "10422:10:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                          "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                        }
                      },
                      "id": 43494,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10422:72:118",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "10411:83:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "id": 43496,
                  "nodeType": "ExpressionStatement",
                  "src": "10411:83:118"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 43500,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 43497,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43477,
                        "src": "10505:4:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 43498,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10510:3:118",
                      "memberName": "len",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42655,
                      "src": "10505:8:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "id": 43499,
                      "name": "UINT32_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42689,
                      "src": "10517:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "10505:22:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 43569,
                    "nodeType": "Block",
                    "src": "11127:58:118",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 43564,
                                    "name": "cbor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43477,
                                    "src": "11167:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "id": 43565,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "11172:3:118",
                                  "memberName": "len",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 42655,
                                  "src": "11167:8:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                ],
                                "id": 43563,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "11160:6:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint32_$",
                                  "typeString": "type(uint32)"
                                },
                                "typeName": {
                                  "id": 43562,
                                  "name": "uint32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "11160:6:118",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 43566,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11160:16:118",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 43559,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43477,
                                "src": "11143:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43560,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11148:6:118",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42647,
                              "src": "11143:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 43561,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11155:4:118",
                            "memberName": "read",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 41088,
                            "src": "11143:16:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory,uint256) pure returns (bytes memory)"
                            }
                          },
                          "id": 43567,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11143:34:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "functionReturnParameters": 43485,
                        "id": 43568,
                        "nodeType": "Return",
                        "src": "11136:41:118"
                      }
                    ]
                  },
                  "id": 43570,
                  "nodeType": "IfStatement",
                  "src": "10501:684:118",
                  "trueBody": {
                    "id": 43558,
                    "nodeType": "Block",
                    "src": "10529:592:118",
                    "statements": [
                      {
                        "assignments": [
                          43502
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 43502,
                            "mutability": "mutable",
                            "name": "length",
                            "nameLocation": "10633:6:118",
                            "nodeType": "VariableDeclaration",
                            "scope": 43558,
                            "src": "10626:13:118",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            "typeName": {
                              "id": 43501,
                              "name": "uint32",
                              "nodeType": "ElementaryTypeName",
                              "src": "10626:6:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 43512,
                        "initialValue": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 43506,
                                    "name": "cbor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43477,
                                    "src": "10687:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "id": 43507,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "10692:6:118",
                                  "memberName": "buffer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 42647,
                                  "src": "10687:11:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                    "typeString": "struct WitnetBuffer.Buffer memory"
                                  }
                                },
                                {
                                  "expression": {
                                    "id": 43508,
                                    "name": "cbor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43477,
                                    "src": "10709:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "id": 43509,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "10714:9:118",
                                  "memberName": "majorType",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 42651,
                                  "src": "10709:14:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                    "typeString": "struct WitnetBuffer.Buffer memory"
                                  },
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 43505,
                                "name": "_readIndefiniteStringLength",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 44173,
                                "src": "10649:27:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                                  "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                                }
                              },
                              "id": 43510,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10649:83:118",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 43504,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10642:6:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint32_$",
                              "typeString": "type(uint32)"
                            },
                            "typeName": {
                              "id": 43503,
                              "name": "uint32",
                              "nodeType": "ElementaryTypeName",
                              "src": "10642:6:118",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 43511,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10642:91:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "10626:107:118"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 43515,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 43513,
                            "name": "length",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43502,
                            "src": "10746:6:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 43514,
                            "name": "UINT32_MAX",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42689,
                            "src": "10755:10:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "10746:19:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 43557,
                        "nodeType": "IfStatement",
                        "src": "10742:372:118",
                        "trueBody": {
                          "id": 43556,
                          "nodeType": "Block",
                          "src": "10767:347:118",
                          "statements": [
                            {
                              "expression": {
                                "id": 43525,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 43516,
                                  "name": "output",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 43484,
                                  "src": "10778:6:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "id": 43522,
                                          "name": "length",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 43502,
                                          "src": "10821:6:118",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint32",
                                            "typeString": "uint32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint32",
                                            "typeString": "uint32"
                                          }
                                        ],
                                        "expression": {
                                          "expression": {
                                            "id": 43519,
                                            "name": "cbor",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 43477,
                                            "src": "10804:4:118",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                              "typeString": "struct WitnetCBOR.CBOR memory"
                                            }
                                          },
                                          "id": 43520,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "10809:6:118",
                                          "memberName": "buffer",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 42647,
                                          "src": "10804:11:118",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                            "typeString": "struct WitnetBuffer.Buffer memory"
                                          }
                                        },
                                        "id": 43521,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "10816:4:118",
                                        "memberName": "read",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 41088,
                                        "src": "10804:16:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                                          "typeString": "function (struct WitnetBuffer.Buffer memory,uint256) pure returns (bytes memory)"
                                        }
                                      },
                                      "id": 43523,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "10804:24:118",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "expression": {
                                      "id": 43517,
                                      "name": "abi",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967295,
                                      "src": "10787:3:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_abi",
                                        "typeString": "abi"
                                      }
                                    },
                                    "id": 43518,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberLocation": "10791:12:118",
                                    "memberName": "encodePacked",
                                    "nodeType": "MemberAccess",
                                    "src": "10787:16:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                      "typeString": "function () pure returns (bytes memory)"
                                    }
                                  },
                                  "id": 43524,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10787:42:118",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                "src": "10778:51:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 43526,
                              "nodeType": "ExpressionStatement",
                              "src": "10778:51:118"
                            },
                            {
                              "expression": {
                                "id": 43537,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 43527,
                                  "name": "length",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 43502,
                                  "src": "10840:6:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "expression": {
                                            "id": 43531,
                                            "name": "cbor",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 43477,
                                            "src": "10896:4:118",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                              "typeString": "struct WitnetCBOR.CBOR memory"
                                            }
                                          },
                                          "id": 43532,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "10901:6:118",
                                          "memberName": "buffer",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 42647,
                                          "src": "10896:11:118",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                            "typeString": "struct WitnetBuffer.Buffer memory"
                                          }
                                        },
                                        {
                                          "expression": {
                                            "id": 43533,
                                            "name": "cbor",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 43477,
                                            "src": "10920:4:118",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                              "typeString": "struct WitnetCBOR.CBOR memory"
                                            }
                                          },
                                          "id": 43534,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "10925:9:118",
                                          "memberName": "majorType",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 42651,
                                          "src": "10920:14:118",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                            "typeString": "struct WitnetBuffer.Buffer memory"
                                          },
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 43530,
                                        "name": "_readIndefiniteStringLength",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 44173,
                                        "src": "10856:27:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                                          "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                                        }
                                      },
                                      "id": 43535,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "10856:89:118",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    ],
                                    "id": 43529,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "10849:6:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint32_$",
                                      "typeString": "type(uint32)"
                                    },
                                    "typeName": {
                                      "id": 43528,
                                      "name": "uint32",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "10849:6:118",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 43536,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10849:97:118",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "src": "10840:106:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "id": 43538,
                              "nodeType": "ExpressionStatement",
                              "src": "10840:106:118"
                            },
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                },
                                "id": 43541,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 43539,
                                  "name": "length",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 43502,
                                  "src": "10961:6:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "id": 43540,
                                  "name": "UINT32_MAX",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42689,
                                  "src": "10970:10:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "src": "10961:19:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 43555,
                              "nodeType": "IfStatement",
                              "src": "10957:148:118",
                              "trueBody": {
                                "id": 43554,
                                "nodeType": "Block",
                                "src": "10982:123:118",
                                "statements": [
                                  {
                                    "expression": {
                                      "id": 43552,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "id": 43542,
                                        "name": "output",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 43484,
                                        "src": "10995:6:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "arguments": [
                                          {
                                            "id": 43545,
                                            "name": "output",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 43484,
                                            "src": "11035:6:118",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "id": 43549,
                                                "name": "length",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 43502,
                                                "src": "11073:6:118",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint32",
                                                  "typeString": "uint32"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint32",
                                                  "typeString": "uint32"
                                                }
                                              ],
                                              "expression": {
                                                "expression": {
                                                  "id": 43546,
                                                  "name": "cbor",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 43477,
                                                  "src": "11056:4:118",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                                  }
                                                },
                                                "id": 43547,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberLocation": "11061:6:118",
                                                "memberName": "buffer",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 42647,
                                                "src": "11056:11:118",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                                  "typeString": "struct WitnetBuffer.Buffer memory"
                                                }
                                              },
                                              "id": 43548,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "memberLocation": "11068:4:118",
                                              "memberName": "read",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 41088,
                                              "src": "11056:16:118",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                                                "typeString": "function (struct WitnetBuffer.Buffer memory,uint256) pure returns (bytes memory)"
                                              }
                                            },
                                            "id": 43550,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "11056:24:118",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "expression": {
                                            "id": 43543,
                                            "name": "abi",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4294967295,
                                            "src": "11004:3:118",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_magic_abi",
                                              "typeString": "abi"
                                            }
                                          },
                                          "id": 43544,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "memberLocation": "11008:12:118",
                                          "memberName": "encodePacked",
                                          "nodeType": "MemberAccess",
                                          "src": "11004:16:118",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                            "typeString": "function () pure returns (bytes memory)"
                                          }
                                        },
                                        "id": 43551,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11004:89:118",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      },
                                      "src": "10995:98:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    },
                                    "id": 43553,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10995:98:118"
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 43474,
              "nodeType": "StructuredDocumentation",
              "src": "10076:189:118",
              "text": "@notice Decode a `CBOR` structure into a native `bytes` value.\n @param cbor An instance of `CBOR`.\n @return output The value represented by the input, as a `bytes` value.   "
            },
            "id": 43572,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 43480,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 43477,
                    "src": "10342:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 43481,
                    "name": "MAJOR_TYPE_BYTES",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42667,
                    "src": "10348:16:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 43482,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 43479,
                  "name": "isMajorType",
                  "nameLocations": [
                    "10330:11:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42737,
                  "src": "10330:11:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "10330:35:118"
              }
            ],
            "name": "readBytes",
            "nameLocation": "10278:9:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43478,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43477,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "10300:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43572,
                  "src": "10288:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 43476,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43475,
                      "name": "CBOR",
                      "nameLocations": [
                        "10288:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "10288:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "10288:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10287:18:118"
            },
            "returnParameters": {
              "id": 43485,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43484,
                  "mutability": "mutable",
                  "name": "output",
                  "nameLocation": "10393:6:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43572,
                  "src": "10380:19:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 43483,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "10380:5:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10379:21:118"
            },
            "scope": 44174,
            "src": "10269:921:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43602,
              "nodeType": "Block",
              "src": "11866:177:118",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 43588,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 43585,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43576,
                        "src": "11877:4:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 43586,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11882:21:118",
                      "memberName": "additionalInformation",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42653,
                      "src": "11877:26:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3235",
                      "id": 43587,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11907:2:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_25_by_1",
                        "typeString": "int_const 25"
                      },
                      "value": "25"
                    },
                    "src": "11877:32:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 43600,
                    "nodeType": "Block",
                    "src": "11966:72:118",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 43596,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43576,
                                "src": "12003:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43597,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "12008:21:118",
                              "memberName": "additionalInformation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42653,
                              "src": "12003:26:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "id": 43595,
                            "name": "UnsupportedPrimitive",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42712,
                            "src": "11982:20:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
                              "typeString": "function (uint256) pure returns (error)"
                            }
                          },
                          "id": 43598,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11982:48:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_error",
                            "typeString": "error"
                          }
                        },
                        "id": 43599,
                        "nodeType": "RevertStatement",
                        "src": "11975:55:118"
                      }
                    ]
                  },
                  "id": 43601,
                  "nodeType": "IfStatement",
                  "src": "11873:165:118",
                  "trueBody": {
                    "id": 43594,
                    "nodeType": "Block",
                    "src": "11911:49:118",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "expression": {
                                "id": 43589,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43576,
                                "src": "11927:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43590,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11932:6:118",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42647,
                              "src": "11927:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 43591,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11939:11:118",
                            "memberName": "readFloat16",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 41239,
                            "src": "11927:23:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_int32_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (int32)"
                            }
                          },
                          "id": 43592,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11927:25:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int32",
                            "typeString": "int32"
                          }
                        },
                        "functionReturnParameters": 43584,
                        "id": 43593,
                        "nodeType": "Return",
                        "src": "11920:32:118"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 43573,
              "nodeType": "StructuredDocumentation",
              "src": "11196:536:118",
              "text": "@notice Decode a `CBOR` structure into a `fixed16` value.\n @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values\n by 5 decimal orders so as to get a fixed precision of 5 decimal positions, which should be OK for most `fixed16`\n use cases. In other words, the output of this method is 10,000 times the actual value, encoded into an `int32`.\n @param cbor An instance of `CBOR`.\n @return The value represented by the input, as an `int128` value."
            },
            "id": 43603,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 43579,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 43576,
                    "src": "11811:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 43580,
                    "name": "MAJOR_TYPE_CONTENT_FREE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42682,
                    "src": "11817:23:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 43581,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 43578,
                  "name": "isMajorType",
                  "nameLocations": [
                    "11799:11:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42737,
                  "src": "11799:11:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "11799:42:118"
              }
            ],
            "name": "readFloat16",
            "nameLocation": "11745:11:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43577,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43576,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "11769:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43603,
                  "src": "11757:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 43575,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43574,
                      "name": "CBOR",
                      "nameLocations": [
                        "11757:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "11757:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "11757:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11756:18:118"
            },
            "returnParameters": {
              "id": 43584,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43583,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 43603,
                  "src": "11856:5:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int32",
                    "typeString": "int32"
                  },
                  "typeName": {
                    "id": 43582,
                    "name": "int32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11856:5:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int32",
                      "typeString": "int32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11855:7:118"
            },
            "scope": 44174,
            "src": "11736:307:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43633,
              "nodeType": "Block",
              "src": "12710:177:118",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 43619,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 43616,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43607,
                        "src": "12721:4:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 43617,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "12726:21:118",
                      "memberName": "additionalInformation",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42653,
                      "src": "12721:26:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3236",
                      "id": 43618,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12751:2:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_26_by_1",
                        "typeString": "int_const 26"
                      },
                      "value": "26"
                    },
                    "src": "12721:32:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 43631,
                    "nodeType": "Block",
                    "src": "12810:72:118",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 43627,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43607,
                                "src": "12847:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43628,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "12852:21:118",
                              "memberName": "additionalInformation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42653,
                              "src": "12847:26:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "id": 43626,
                            "name": "UnsupportedPrimitive",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42712,
                            "src": "12826:20:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
                              "typeString": "function (uint256) pure returns (error)"
                            }
                          },
                          "id": 43629,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12826:48:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_error",
                            "typeString": "error"
                          }
                        },
                        "id": 43630,
                        "nodeType": "RevertStatement",
                        "src": "12819:55:118"
                      }
                    ]
                  },
                  "id": 43632,
                  "nodeType": "IfStatement",
                  "src": "12717:165:118",
                  "trueBody": {
                    "id": 43625,
                    "nodeType": "Block",
                    "src": "12755:49:118",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "expression": {
                                "id": 43620,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43607,
                                "src": "12771:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43621,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "12776:6:118",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42647,
                              "src": "12771:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 43622,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "12783:11:118",
                            "memberName": "readFloat32",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 41377,
                            "src": "12771:23:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_int256_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (int256)"
                            }
                          },
                          "id": 43623,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12771:25:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "functionReturnParameters": 43615,
                        "id": 43624,
                        "nodeType": "Return",
                        "src": "12764:32:118"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 43604,
              "nodeType": "StructuredDocumentation",
              "src": "12049:529:118",
              "text": "@notice Decode a `CBOR` structure into a `fixed32` value.\n @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values\n by 9 decimal orders so as to get a fixed precision of 9 decimal positions, which should be OK for most `fixed64`\n use cases. In other words, the output of this method is 10^9 times the actual value, encoded into an `int`.\n @param cbor An instance of `CBOR`.\n @return The value represented by the input, as an `int` value."
            },
            "id": 43634,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 43610,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 43607,
                    "src": "12657:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 43611,
                    "name": "MAJOR_TYPE_CONTENT_FREE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42682,
                    "src": "12663:23:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 43612,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 43609,
                  "name": "isMajorType",
                  "nameLocations": [
                    "12645:11:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42737,
                  "src": "12645:11:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "12645:42:118"
              }
            ],
            "name": "readFloat32",
            "nameLocation": "12591:11:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43608,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43607,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "12615:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43634,
                  "src": "12603:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 43606,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43605,
                      "name": "CBOR",
                      "nameLocations": [
                        "12603:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "12603:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "12603:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12602:18:118"
            },
            "returnParameters": {
              "id": 43615,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43614,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 43634,
                  "src": "12702:3:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 43613,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "12702:3:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12701:5:118"
            },
            "scope": 44174,
            "src": "12582:305:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43664,
              "nodeType": "Block",
              "src": "13557:177:118",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 43650,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 43647,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43638,
                        "src": "13568:4:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 43648,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13573:21:118",
                      "memberName": "additionalInformation",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42653,
                      "src": "13568:26:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "3237",
                      "id": 43649,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13598:2:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_27_by_1",
                        "typeString": "int_const 27"
                      },
                      "value": "27"
                    },
                    "src": "13568:32:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 43662,
                    "nodeType": "Block",
                    "src": "13657:72:118",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 43658,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43638,
                                "src": "13694:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43659,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "13699:21:118",
                              "memberName": "additionalInformation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42653,
                              "src": "13694:26:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "id": 43657,
                            "name": "UnsupportedPrimitive",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42712,
                            "src": "13673:20:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
                              "typeString": "function (uint256) pure returns (error)"
                            }
                          },
                          "id": 43660,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13673:48:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_error",
                            "typeString": "error"
                          }
                        },
                        "id": 43661,
                        "nodeType": "RevertStatement",
                        "src": "13666:55:118"
                      }
                    ]
                  },
                  "id": 43663,
                  "nodeType": "IfStatement",
                  "src": "13564:165:118",
                  "trueBody": {
                    "id": 43656,
                    "nodeType": "Block",
                    "src": "13602:49:118",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "expression": {
                                "id": 43651,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43638,
                                "src": "13618:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43652,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "13623:6:118",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42647,
                              "src": "13618:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            "id": 43653,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13630:11:118",
                            "memberName": "readFloat64",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 41515,
                            "src": "13618:23:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_int256_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (int256)"
                            }
                          },
                          "id": 43654,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13618:25:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "functionReturnParameters": 43646,
                        "id": 43655,
                        "nodeType": "Return",
                        "src": "13611:32:118"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 43635,
              "nodeType": "StructuredDocumentation",
              "src": "12893:532:118",
              "text": "@notice Decode a `CBOR` structure into a `fixed64` value.\n @dev Due to the lack of support for floating or fixed point arithmetic in the EVM, this method offsets all values\n by 15 decimal orders so as to get a fixed precision of 15 decimal positions, which should be OK for most `fixed64`\n use cases. In other words, the output of this method is 10^15 times the actual value, encoded into an `int`.\n @param cbor An instance of `CBOR`.\n @return The value represented by the input, as an `int` value."
            },
            "id": 43665,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 43641,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 43638,
                    "src": "13504:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 43642,
                    "name": "MAJOR_TYPE_CONTENT_FREE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42682,
                    "src": "13510:23:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 43643,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 43640,
                  "name": "isMajorType",
                  "nameLocations": [
                    "13492:11:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42737,
                  "src": "13492:11:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "13492:42:118"
              }
            ],
            "name": "readFloat64",
            "nameLocation": "13438:11:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43638,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "13462:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43665,
                  "src": "13450:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 43637,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43636,
                      "name": "CBOR",
                      "nameLocations": [
                        "13450:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "13450:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "13450:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13449:18:118"
            },
            "returnParameters": {
              "id": 43646,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43645,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 43665,
                  "src": "13549:3:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 43644,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "13549:3:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13548:5:118"
            },
            "scope": 44174,
            "src": "13429:305:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43735,
              "nodeType": "Block",
              "src": "14093:408:118",
              "statements": [
                {
                  "assignments": [
                    43680
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 43680,
                      "mutability": "mutable",
                      "name": "length",
                      "nameLocation": "14107:6:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 43735,
                      "src": "14100:13:118",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 43679,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "14100:6:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 43687,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 43682,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 43669,
                          "src": "14127:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43683,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "14132:6:118",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42647,
                        "src": "14127:11:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 43684,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 43669,
                          "src": "14140:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43685,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "14145:21:118",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42653,
                        "src": "14140:26:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 43681,
                      "name": "readLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43437,
                      "src": "14116:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                      }
                    },
                    "id": 43686,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14116:51:118",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14100:67:118"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 43690,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 43688,
                      "name": "length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43680,
                      "src": "14178:6:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 43689,
                      "name": "UINT64_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42696,
                      "src": "14187:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "14178:19:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 43733,
                    "nodeType": "Block",
                    "src": "14443:53:118",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 43730,
                              "name": "length",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43680,
                              "src": "14481:6:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 43729,
                            "name": "InvalidLengthEncoding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42702,
                            "src": "14459:21:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
                              "typeString": "function (uint256) pure returns (error)"
                            }
                          },
                          "id": 43731,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14459:29:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_error",
                            "typeString": "error"
                          }
                        },
                        "id": 43732,
                        "nodeType": "RevertStatement",
                        "src": "14452:36:118"
                      }
                    ]
                  },
                  "id": 43734,
                  "nodeType": "IfStatement",
                  "src": "14174:322:118",
                  "trueBody": {
                    "id": 43728,
                    "nodeType": "Block",
                    "src": "14199:238:118",
                    "statements": [
                      {
                        "expression": {
                          "id": 43697,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 43691,
                            "name": "values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43677,
                            "src": "14208:6:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                              "typeString": "int32[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 43695,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43680,
                                "src": "14229:6:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "id": 43694,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "14217:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int32_$dyn_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (int32[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 43692,
                                  "name": "int32",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "14221:5:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int32",
                                    "typeString": "int32"
                                  }
                                },
                                "id": 43693,
                                "nodeType": "ArrayTypeName",
                                "src": "14221:7:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_int32_$dyn_storage_ptr",
                                  "typeString": "int32[]"
                                }
                              }
                            },
                            "id": 43696,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14217:19:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                              "typeString": "int32[] memory"
                            }
                          },
                          "src": "14208:28:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                            "typeString": "int32[] memory"
                          }
                        },
                        "id": 43698,
                        "nodeType": "ExpressionStatement",
                        "src": "14208:28:118"
                      },
                      {
                        "body": {
                          "id": 43726,
                          "nodeType": "Block",
                          "src": "14278:152:118",
                          "statements": [
                            {
                              "assignments": [
                                43708
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 43708,
                                  "mutability": "mutable",
                                  "name": "item",
                                  "nameLocation": "14301:4:118",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 43726,
                                  "src": "14289:16:118",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR"
                                  },
                                  "typeName": {
                                    "id": 43707,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 43706,
                                      "name": "CBOR",
                                      "nameLocations": [
                                        "14289:4:118"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 42658,
                                      "src": "14289:4:118"
                                    },
                                    "referencedDeclaration": 42658,
                                    "src": "14289:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 43713,
                              "initialValue": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 43710,
                                      "name": "cbor",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43669,
                                      "src": "14319:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 43711,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "14324:6:118",
                                    "memberName": "buffer",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 42647,
                                    "src": "14319:11:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  ],
                                  "id": 43709,
                                  "name": "fromBuffer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42908,
                                  "src": "14308:10:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_struct$_CBOR_$42658_memory_ptr_$",
                                    "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                  }
                                },
                                "id": 43712,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "14308:23:118",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "14289:42:118"
                            },
                            {
                              "expression": {
                                "id": 43720,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 43714,
                                    "name": "values",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43677,
                                    "src": "14342:6:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                                      "typeString": "int32[] memory"
                                    }
                                  },
                                  "id": 43716,
                                  "indexExpression": {
                                    "id": 43715,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43700,
                                    "src": "14349:1:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "14342:9:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int32",
                                    "typeString": "int32"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "id": 43718,
                                      "name": "item",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43708,
                                      "src": "14366:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    ],
                                    "id": 43717,
                                    "name": "readFloat16",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43603,
                                    "src": "14354:11:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_int32_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (int32)"
                                    }
                                  },
                                  "id": 43719,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14354:17:118",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int32",
                                    "typeString": "int32"
                                  }
                                },
                                "src": "14342:29:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int32",
                                  "typeString": "int32"
                                }
                              },
                              "id": 43721,
                              "nodeType": "ExpressionStatement",
                              "src": "14342:29:118"
                            },
                            {
                              "id": 43725,
                              "nodeType": "UncheckedBlock",
                              "src": "14382:39:118",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 43723,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "UnaryOperation",
                                    "operator": "++",
                                    "prefix": false,
                                    "src": "14405:4:118",
                                    "subExpression": {
                                      "id": 43722,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43700,
                                      "src": "14405:1:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  "id": 43724,
                                  "nodeType": "ExpressionStatement",
                                  "src": "14405:4:118"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 43705,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 43703,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43700,
                            "src": "14264:1:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 43704,
                            "name": "length",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43680,
                            "src": "14268:6:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "14264:10:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 43727,
                        "initializationExpression": {
                          "assignments": [
                            43700
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 43700,
                              "mutability": "mutable",
                              "name": "i",
                              "nameLocation": "14257:1:118",
                              "nodeType": "VariableDeclaration",
                              "scope": 43727,
                              "src": "14250:8:118",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              },
                              "typeName": {
                                "id": 43699,
                                "name": "uint64",
                                "nodeType": "ElementaryTypeName",
                                "src": "14250:6:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 43702,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 43701,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14261:1:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "14250:12:118"
                        },
                        "isSimpleCounterLoop": false,
                        "nodeType": "ForStatement",
                        "src": "14245:185:118"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 43666,
              "nodeType": "StructuredDocumentation",
              "src": "13740:205:118",
              "text": "@notice Decode a `CBOR` structure into a native `int128[]` value whose inner values follow the same convention \n @notice as explained in `decodeFixed16`.\n @param cbor An instance of `CBOR`."
            },
            "id": 43736,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 43672,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 43669,
                    "src": "14029:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 43673,
                    "name": "MAJOR_TYPE_ARRAY",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42673,
                    "src": "14035:16:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 43674,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 43671,
                  "name": "isMajorType",
                  "nameLocations": [
                    "14017:11:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42737,
                  "src": "14017:11:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "14017:35:118"
              }
            ],
            "name": "readFloat16Array",
            "nameLocation": "13958:16:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43669,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "13987:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43736,
                  "src": "13975:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 43668,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43667,
                      "name": "CBOR",
                      "nameLocations": [
                        "13975:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "13975:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "13975:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13974:18:118"
            },
            "returnParameters": {
              "id": 43678,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43677,
                  "mutability": "mutable",
                  "name": "values",
                  "nameLocation": "14082:6:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43736,
                  "src": "14067:21:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                    "typeString": "int32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 43675,
                      "name": "int32",
                      "nodeType": "ElementaryTypeName",
                      "src": "14067:5:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int32",
                        "typeString": "int32"
                      }
                    },
                    "id": 43676,
                    "nodeType": "ArrayTypeName",
                    "src": "14067:7:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int32_$dyn_storage_ptr",
                      "typeString": "int32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14066:23:118"
            },
            "scope": 44174,
            "src": "13949:552:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43794,
              "nodeType": "Block",
              "src": "14771:525:118",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 43748,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 43745,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43740,
                        "src": "14782:4:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 43746,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14787:9:118",
                      "memberName": "majorType",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42651,
                      "src": "14782:14:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 43747,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14800:1:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "14782:19:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 43776,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 43773,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 43740,
                          "src": "14973:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43774,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "14978:9:118",
                        "memberName": "majorType",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42651,
                        "src": "14973:14:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "30",
                        "id": 43775,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14991:1:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "14973:19:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 43791,
                      "nodeType": "Block",
                      "src": "15229:62:118",
                      "statements": [
                        {
                          "errorCall": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 43786,
                                  "name": "cbor",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 43740,
                                  "src": "15265:4:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 43787,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "15270:9:118",
                                "memberName": "majorType",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 42651,
                                "src": "15265:14:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              {
                                "hexValue": "31",
                                "id": 43788,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "15281:1:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                }
                              ],
                              "id": 43785,
                              "name": "UnexpectedMajorType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42708,
                              "src": "15245:19:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$",
                                "typeString": "function (uint256,uint256) pure returns (error)"
                              }
                            },
                            "id": 43789,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15245:38:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_error",
                              "typeString": "error"
                            }
                          },
                          "id": 43790,
                          "nodeType": "RevertStatement",
                          "src": "15238:45:118"
                        }
                      ]
                    },
                    "id": 43792,
                    "nodeType": "IfStatement",
                    "src": "14969:322:118",
                    "trueBody": {
                      "id": 43784,
                      "nodeType": "Block",
                      "src": "14994:224:118",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 43780,
                                    "name": "cbor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43740,
                                    "src": "15204:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  ],
                                  "id": 43779,
                                  "name": "readUint",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 44043,
                                  "src": "15195:8:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_uint64_$",
                                    "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (uint64)"
                                  }
                                },
                                "id": 43781,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "15195:14:118",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "id": 43778,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "15189:5:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int64_$",
                                "typeString": "type(int64)"
                              },
                              "typeName": {
                                "id": 43777,
                                "name": "int64",
                                "nodeType": "ElementaryTypeName",
                                "src": "15189:5:118",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 43782,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15189:21:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int64",
                              "typeString": "int64"
                            }
                          },
                          "functionReturnParameters": 43744,
                          "id": 43783,
                          "nodeType": "Return",
                          "src": "15182:28:118"
                        }
                      ]
                    }
                  },
                  "id": 43793,
                  "nodeType": "IfStatement",
                  "src": "14778:513:118",
                  "trueBody": {
                    "id": 43772,
                    "nodeType": "Block",
                    "src": "14803:160:118",
                    "statements": [
                      {
                        "assignments": [
                          43750
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 43750,
                            "mutability": "mutable",
                            "name": "_value",
                            "nameLocation": "14819:6:118",
                            "nodeType": "VariableDeclaration",
                            "scope": 43772,
                            "src": "14812:13:118",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            },
                            "typeName": {
                              "id": 43749,
                              "name": "uint64",
                              "nodeType": "ElementaryTypeName",
                              "src": "14812:6:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 43757,
                        "initialValue": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 43752,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43740,
                                "src": "14849:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43753,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14854:6:118",
                              "memberName": "buffer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42647,
                              "src": "14849:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              }
                            },
                            {
                              "expression": {
                                "id": 43754,
                                "name": "cbor",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43740,
                                "src": "14871:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "id": 43755,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "14876:21:118",
                              "memberName": "additionalInformation",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 42653,
                              "src": "14871:26:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                "typeString": "struct WitnetBuffer.Buffer memory"
                              },
                              {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            ],
                            "id": 43751,
                            "name": "readLength",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43437,
                            "src": "14828:10:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                              "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                            }
                          },
                          "id": 43756,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14828:78:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "14812:94:118"
                      },
                      {
                        "expression": {
                          "commonType": {
                            "typeIdentifier": "t_int64",
                            "typeString": "int64"
                          },
                          "id": 43770,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "id": 43761,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "-",
                                "prefix": true,
                                "src": "14928:2:118",
                                "subExpression": {
                                  "hexValue": "31",
                                  "id": 43760,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "14929:1:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_minus_1_by_1",
                                  "typeString": "int_const -1"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_minus_1_by_1",
                                  "typeString": "int_const -1"
                                }
                              ],
                              "id": 43759,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "14922:5:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int64_$",
                                "typeString": "type(int64)"
                              },
                              "typeName": {
                                "id": 43758,
                                "name": "int64",
                                "nodeType": "ElementaryTypeName",
                                "src": "14922:5:118",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 43762,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14922:9:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int64",
                              "typeString": "int64"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 43767,
                                    "name": "_value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43750,
                                    "src": "14947:6:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  ],
                                  "id": 43766,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "14940:6:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint64_$",
                                    "typeString": "type(uint64)"
                                  },
                                  "typeName": {
                                    "id": 43765,
                                    "name": "uint64",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "14940:6:118",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 43768,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "14940:14:118",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "id": 43764,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "14934:5:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int64_$",
                                "typeString": "type(int64)"
                              },
                              "typeName": {
                                "id": 43763,
                                "name": "int64",
                                "nodeType": "ElementaryTypeName",
                                "src": "14934:5:118",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 43769,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14934:21:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int64",
                              "typeString": "int64"
                            }
                          },
                          "src": "14922:33:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int64",
                            "typeString": "int64"
                          }
                        },
                        "functionReturnParameters": 43744,
                        "id": 43771,
                        "nodeType": "Return",
                        "src": "14915:40:118"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 43737,
              "nodeType": "StructuredDocumentation",
              "src": "14507:182:118",
              "text": "@notice Decode a `CBOR` structure into a native `int128` value.\n @param cbor An instance of `CBOR`.\n @return The value represented by the input, as an `int128` value."
            },
            "id": 43795,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "readInt",
            "nameLocation": "14702:7:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43741,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43740,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "14722:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43795,
                  "src": "14710:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 43739,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43738,
                      "name": "CBOR",
                      "nameLocations": [
                        "14710:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "14710:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "14710:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14709:18:118"
            },
            "returnParameters": {
              "id": 43744,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43743,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 43795,
                  "src": "14761:5:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int64",
                    "typeString": "int64"
                  },
                  "typeName": {
                    "id": 43742,
                    "name": "int64",
                    "nodeType": "ElementaryTypeName",
                    "src": "14761:5:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int64",
                      "typeString": "int64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14760:7:118"
            },
            "scope": 44174,
            "src": "14693:603:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43865,
              "nodeType": "Block",
              "src": "15628:400:118",
              "statements": [
                {
                  "assignments": [
                    43810
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 43810,
                      "mutability": "mutable",
                      "name": "length",
                      "nameLocation": "15642:6:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 43865,
                      "src": "15635:13:118",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 43809,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "15635:6:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 43817,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 43812,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 43799,
                          "src": "15662:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43813,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "15667:6:118",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42647,
                        "src": "15662:11:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 43814,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 43799,
                          "src": "15675:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43815,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "15680:21:118",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42653,
                        "src": "15675:26:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 43811,
                      "name": "readLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43437,
                      "src": "15651:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                      }
                    },
                    "id": 43816,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15651:51:118",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15635:67:118"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 43820,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 43818,
                      "name": "length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43810,
                      "src": "15713:6:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 43819,
                      "name": "UINT64_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42696,
                      "src": "15722:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "15713:19:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 43863,
                    "nodeType": "Block",
                    "src": "15970:53:118",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 43860,
                              "name": "length",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43810,
                              "src": "16008:6:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 43859,
                            "name": "InvalidLengthEncoding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42702,
                            "src": "15986:21:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
                              "typeString": "function (uint256) pure returns (error)"
                            }
                          },
                          "id": 43861,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15986:29:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_error",
                            "typeString": "error"
                          }
                        },
                        "id": 43862,
                        "nodeType": "RevertStatement",
                        "src": "15979:36:118"
                      }
                    ]
                  },
                  "id": 43864,
                  "nodeType": "IfStatement",
                  "src": "15709:314:118",
                  "trueBody": {
                    "id": 43858,
                    "nodeType": "Block",
                    "src": "15734:230:118",
                    "statements": [
                      {
                        "expression": {
                          "id": 43827,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 43821,
                            "name": "array",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43807,
                            "src": "15743:5:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_int64_$dyn_memory_ptr",
                              "typeString": "int64[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 43825,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43810,
                                "src": "15763:6:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "id": 43824,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "15751:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_int64_$dyn_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (int64[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 43822,
                                  "name": "int64",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "15755:5:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int64",
                                    "typeString": "int64"
                                  }
                                },
                                "id": 43823,
                                "nodeType": "ArrayTypeName",
                                "src": "15755:7:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_int64_$dyn_storage_ptr",
                                  "typeString": "int64[]"
                                }
                              }
                            },
                            "id": 43826,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15751:19:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_int64_$dyn_memory_ptr",
                              "typeString": "int64[] memory"
                            }
                          },
                          "src": "15743:27:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_int64_$dyn_memory_ptr",
                            "typeString": "int64[] memory"
                          }
                        },
                        "id": 43828,
                        "nodeType": "ExpressionStatement",
                        "src": "15743:27:118"
                      },
                      {
                        "body": {
                          "id": 43856,
                          "nodeType": "Block",
                          "src": "15810:147:118",
                          "statements": [
                            {
                              "assignments": [
                                43838
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 43838,
                                  "mutability": "mutable",
                                  "name": "item",
                                  "nameLocation": "15833:4:118",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 43856,
                                  "src": "15821:16:118",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR"
                                  },
                                  "typeName": {
                                    "id": 43837,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 43836,
                                      "name": "CBOR",
                                      "nameLocations": [
                                        "15821:4:118"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 42658,
                                      "src": "15821:4:118"
                                    },
                                    "referencedDeclaration": 42658,
                                    "src": "15821:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 43843,
                              "initialValue": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 43840,
                                      "name": "cbor",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43799,
                                      "src": "15851:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 43841,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "15856:6:118",
                                    "memberName": "buffer",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 42647,
                                    "src": "15851:11:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  ],
                                  "id": 43839,
                                  "name": "fromBuffer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42908,
                                  "src": "15840:10:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_struct$_CBOR_$42658_memory_ptr_$",
                                    "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                  }
                                },
                                "id": 43842,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "15840:23:118",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "15821:42:118"
                            },
                            {
                              "expression": {
                                "id": 43850,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 43844,
                                    "name": "array",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43807,
                                    "src": "15874:5:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_int64_$dyn_memory_ptr",
                                      "typeString": "int64[] memory"
                                    }
                                  },
                                  "id": 43846,
                                  "indexExpression": {
                                    "id": 43845,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43830,
                                    "src": "15880:1:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "15874:8:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int64",
                                    "typeString": "int64"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "id": 43848,
                                      "name": "item",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43838,
                                      "src": "15893:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    ],
                                    "id": 43847,
                                    "name": "readInt",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43795,
                                    "src": "15885:7:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_int64_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (int64)"
                                    }
                                  },
                                  "id": 43849,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "15885:13:118",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int64",
                                    "typeString": "int64"
                                  }
                                },
                                "src": "15874:24:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int64",
                                  "typeString": "int64"
                                }
                              },
                              "id": 43851,
                              "nodeType": "ExpressionStatement",
                              "src": "15874:24:118"
                            },
                            {
                              "id": 43855,
                              "nodeType": "UncheckedBlock",
                              "src": "15909:39:118",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 43853,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "UnaryOperation",
                                    "operator": "++",
                                    "prefix": false,
                                    "src": "15932:4:118",
                                    "subExpression": {
                                      "id": 43852,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43830,
                                      "src": "15932:1:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 43854,
                                  "nodeType": "ExpressionStatement",
                                  "src": "15932:4:118"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 43835,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 43833,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43830,
                            "src": "15796:1:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 43834,
                            "name": "length",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43810,
                            "src": "15800:6:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "15796:10:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 43857,
                        "initializationExpression": {
                          "assignments": [
                            43830
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 43830,
                              "mutability": "mutable",
                              "name": "i",
                              "nameLocation": "15789:1:118",
                              "nodeType": "VariableDeclaration",
                              "scope": 43857,
                              "src": "15784:6:118",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 43829,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "15784:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 43832,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 43831,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15793:1:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "15784:10:118"
                        },
                        "isSimpleCounterLoop": false,
                        "nodeType": "ForStatement",
                        "src": "15779:178:118"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 43796,
              "nodeType": "StructuredDocumentation",
              "src": "15302:183:118",
              "text": "@notice Decode a `CBOR` structure into a native `int[]` value.\n @param cbor instance of `CBOR`.\n @return array The value represented by the input, as an `int[]` value."
            },
            "id": 43866,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 43802,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 43799,
                    "src": "15565:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 43803,
                    "name": "MAJOR_TYPE_ARRAY",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42673,
                    "src": "15571:16:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 43804,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 43801,
                  "name": "isMajorType",
                  "nameLocations": [
                    "15553:11:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42737,
                  "src": "15553:11:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "15553:35:118"
              }
            ],
            "name": "readIntArray",
            "nameLocation": "15498:12:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43800,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43799,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "15523:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43866,
                  "src": "15511:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 43798,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43797,
                      "name": "CBOR",
                      "nameLocations": [
                        "15511:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "15511:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "15511:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15510:18:118"
            },
            "returnParameters": {
              "id": 43808,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43807,
                  "mutability": "mutable",
                  "name": "array",
                  "nameLocation": "15618:5:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43866,
                  "src": "15603:20:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_int64_$dyn_memory_ptr",
                    "typeString": "int64[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 43805,
                      "name": "int64",
                      "nodeType": "ElementaryTypeName",
                      "src": "15603:5:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int64",
                        "typeString": "int64"
                      }
                    },
                    "id": 43806,
                    "nodeType": "ArrayTypeName",
                    "src": "15603:7:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int64_$dyn_storage_ptr",
                      "typeString": "int64[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15602:22:118"
            },
            "scope": 44174,
            "src": "15489:539:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 43950,
              "nodeType": "Block",
              "src": "16360:566:118",
              "statements": [
                {
                  "expression": {
                    "id": 43888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 43879,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43870,
                        "src": "16367:4:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 43881,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "16372:3:118",
                      "memberName": "len",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42655,
                      "src": "16367:8:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 43883,
                            "name": "cbor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43870,
                            "src": "16389:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 43884,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "16394:6:118",
                          "memberName": "buffer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 42647,
                          "src": "16389:11:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          }
                        },
                        {
                          "expression": {
                            "id": 43885,
                            "name": "cbor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43870,
                            "src": "16402:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                              "typeString": "struct WitnetCBOR.CBOR memory"
                            }
                          },
                          "id": 43886,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "16407:21:118",
                          "memberName": "additionalInformation",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 42653,
                          "src": "16402:26:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          },
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 43882,
                        "name": "readLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43437,
                        "src": "16378:10:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                          "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                        }
                      },
                      "id": 43887,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16378:51:118",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "16367:62:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "id": 43889,
                  "nodeType": "ExpressionStatement",
                  "src": "16367:62:118"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 43893,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 43890,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43870,
                        "src": "16440:4:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 43891,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "16445:3:118",
                      "memberName": "len",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42655,
                      "src": "16440:8:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "id": 43892,
                      "name": "UINT64_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42696,
                      "src": "16452:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "16440:22:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 43948,
                    "nodeType": "Block",
                    "src": "16859:62:118",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 43943,
                                    "name": "cbor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43870,
                                    "src": "16903:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "id": 43944,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "16908:3:118",
                                  "memberName": "len",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 42655,
                                  "src": "16903:8:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                ],
                                "expression": {
                                  "expression": {
                                    "id": 43940,
                                    "name": "cbor",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43870,
                                    "src": "16882:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR memory"
                                    }
                                  },
                                  "id": 43941,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "16887:6:118",
                                  "memberName": "buffer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 42647,
                                  "src": "16882:11:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                    "typeString": "struct WitnetBuffer.Buffer memory"
                                  }
                                },
                                "id": 43942,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "16894:8:118",
                                "memberName": "readText",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 41668,
                                "src": "16882:20:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint64_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                                  "typeString": "function (struct WitnetBuffer.Buffer memory,uint64) pure returns (bytes memory)"
                                }
                              },
                              "id": 43945,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "16882:30:118",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 43939,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16875:6:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                              "typeString": "type(string storage pointer)"
                            },
                            "typeName": {
                              "id": 43938,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "16875:6:118",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 43946,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16875:38:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        "functionReturnParameters": 43878,
                        "id": 43947,
                        "nodeType": "Return",
                        "src": "16868:45:118"
                      }
                    ]
                  },
                  "id": 43949,
                  "nodeType": "IfStatement",
                  "src": "16436:485:118",
                  "trueBody": {
                    "id": 43937,
                    "nodeType": "Block",
                    "src": "16464:389:118",
                    "statements": [
                      {
                        "assignments": [
                          43895
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 43895,
                            "mutability": "mutable",
                            "name": "_done",
                            "nameLocation": "16478:5:118",
                            "nodeType": "VariableDeclaration",
                            "scope": 43937,
                            "src": "16473:10:118",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 43894,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "16473:4:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 43896,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "16473:10:118"
                      },
                      {
                        "body": {
                          "id": 43935,
                          "nodeType": "Block",
                          "src": "16507:339:118",
                          "statements": [
                            {
                              "assignments": [
                                43900
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 43900,
                                  "mutability": "mutable",
                                  "name": "length",
                                  "nameLocation": "16525:6:118",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 43935,
                                  "src": "16518:13:118",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  },
                                  "typeName": {
                                    "id": 43899,
                                    "name": "uint64",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "16518:6:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 43907,
                              "initialValue": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 43902,
                                      "name": "cbor",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43870,
                                      "src": "16574:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 43903,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "16579:6:118",
                                    "memberName": "buffer",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 42647,
                                    "src": "16574:11:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 43904,
                                      "name": "cbor",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43870,
                                      "src": "16598:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 43905,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "16603:9:118",
                                    "memberName": "majorType",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 42651,
                                    "src": "16598:14:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    },
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  ],
                                  "id": 43901,
                                  "name": "_readIndefiniteStringLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 44173,
                                  "src": "16534:27:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                                    "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                                  }
                                },
                                "id": 43906,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "16534:89:118",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "16518:105:118"
                            },
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                },
                                "id": 43910,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 43908,
                                  "name": "length",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 43900,
                                  "src": "16638:6:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "id": 43909,
                                  "name": "UINT64_MAX",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42696,
                                  "src": "16647:10:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "src": "16638:19:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 43933,
                                "nodeType": "Block",
                                "src": "16800:37:118",
                                "statements": [
                                  {
                                    "expression": {
                                      "id": 43931,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "id": 43929,
                                        "name": "_done",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 43895,
                                        "src": "16813:5:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "hexValue": "74727565",
                                        "id": 43930,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "16821:4:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        },
                                        "value": "true"
                                      },
                                      "src": "16813:12:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "id": 43932,
                                    "nodeType": "ExpressionStatement",
                                    "src": "16813:12:118"
                                  }
                                ]
                              },
                              "id": 43934,
                              "nodeType": "IfStatement",
                              "src": "16634:203:118",
                              "trueBody": {
                                "id": 43928,
                                "nodeType": "Block",
                                "src": "16659:135:118",
                                "statements": [
                                  {
                                    "expression": {
                                      "id": 43926,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "id": 43911,
                                        "name": "text",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 43877,
                                        "src": "16672:4:118",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "id": 43916,
                                                "name": "text",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 43877,
                                                "src": "16717:4:118",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_memory_ptr",
                                                  "typeString": "string memory"
                                                }
                                              },
                                              {
                                                "arguments": [
                                                  {
                                                    "commonType": {
                                                      "typeIdentifier": "t_uint64",
                                                      "typeString": "uint64"
                                                    },
                                                    "id": 43922,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                      "id": 43920,
                                                      "name": "length",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 43900,
                                                      "src": "16757:6:118",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_uint64",
                                                        "typeString": "uint64"
                                                      }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "/",
                                                    "rightExpression": {
                                                      "hexValue": "34",
                                                      "id": 43921,
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": true,
                                                      "kind": "number",
                                                      "lValueRequested": false,
                                                      "nodeType": "Literal",
                                                      "src": "16766:1:118",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_4_by_1",
                                                        "typeString": "int_const 4"
                                                      },
                                                      "value": "4"
                                                    },
                                                    "src": "16757:10:118",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_uint64",
                                                      "typeString": "uint64"
                                                    }
                                                  }
                                                ],
                                                "expression": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_uint64",
                                                      "typeString": "uint64"
                                                    }
                                                  ],
                                                  "expression": {
                                                    "expression": {
                                                      "id": 43917,
                                                      "name": "cbor",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 43870,
                                                      "src": "16736:4:118",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                                      }
                                                    },
                                                    "id": 43918,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberLocation": "16741:6:118",
                                                    "memberName": "buffer",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 42647,
                                                    "src": "16736:11:118",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                                    }
                                                  },
                                                  "id": 43919,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "memberLocation": "16748:8:118",
                                                  "memberName": "readText",
                                                  "nodeType": "MemberAccess",
                                                  "referencedDeclaration": 41668,
                                                  "src": "16736:20:118",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint64_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                                                    "typeString": "function (struct WitnetBuffer.Buffer memory,uint64) pure returns (bytes memory)"
                                                  }
                                                },
                                                "id": 43923,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "nameLocations": [],
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "16736:32:118",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes_memory_ptr",
                                                  "typeString": "bytes memory"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_string_memory_ptr",
                                                  "typeString": "string memory"
                                                },
                                                {
                                                  "typeIdentifier": "t_bytes_memory_ptr",
                                                  "typeString": "bytes memory"
                                                }
                                              ],
                                              "expression": {
                                                "id": 43914,
                                                "name": "abi",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 4294967295,
                                                "src": "16686:3:118",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_magic_abi",
                                                  "typeString": "abi"
                                                }
                                              },
                                              "id": 43915,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "memberLocation": "16690:12:118",
                                              "memberName": "encodePacked",
                                              "nodeType": "MemberAccess",
                                              "src": "16686:16:118",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function () pure returns (bytes memory)"
                                              }
                                            },
                                            "id": 43924,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "16686:95:118",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 43913,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "16679:6:118",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                            "typeString": "type(string storage pointer)"
                                          },
                                          "typeName": {
                                            "id": 43912,
                                            "name": "string",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "16679:6:118",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 43925,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "16679:103:118",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "src": "16672:110:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "id": 43927,
                                    "nodeType": "ExpressionStatement",
                                    "src": "16672:110:118"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "id": 43898,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "16499:6:118",
                          "subExpression": {
                            "id": 43897,
                            "name": "_done",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43895,
                            "src": "16500:5:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 43936,
                        "nodeType": "WhileStatement",
                        "src": "16492:354:118"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 43867,
              "nodeType": "StructuredDocumentation",
              "src": "16034:186:118",
              "text": "@notice Decode a `CBOR` structure into a native `string` value.\n @param cbor An instance of `CBOR`.\n @return text The value represented by the input, as a `string` value."
            },
            "id": 43951,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 43873,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 43870,
                    "src": "16298:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 43874,
                    "name": "MAJOR_TYPE_STRING",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42670,
                    "src": "16304:17:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 43875,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 43872,
                  "name": "isMajorType",
                  "nameLocations": [
                    "16286:11:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42737,
                  "src": "16286:11:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "16286:36:118"
              }
            ],
            "name": "readString",
            "nameLocation": "16233:10:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43871,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43870,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "16256:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43951,
                  "src": "16244:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 43869,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43868,
                      "name": "CBOR",
                      "nameLocations": [
                        "16244:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "16244:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "16244:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "16243:18:118"
            },
            "returnParameters": {
              "id": 43878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43877,
                  "mutability": "mutable",
                  "name": "text",
                  "nameLocation": "16351:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 43951,
                  "src": "16337:18:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 43876,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "16337:6:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "16336:20:118"
            },
            "scope": 44174,
            "src": "16224:702:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 44021,
              "nodeType": "Block",
              "src": "17275:406:118",
              "statements": [
                {
                  "assignments": [
                    43966
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 43966,
                      "mutability": "mutable",
                      "name": "length",
                      "nameLocation": "17287:6:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 44021,
                      "src": "17282:11:118",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 43965,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "17282:4:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 43973,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 43968,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 43955,
                          "src": "17307:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43969,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "17312:6:118",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42647,
                        "src": "17307:11:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 43970,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 43955,
                          "src": "17320:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 43971,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "17325:21:118",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42653,
                        "src": "17320:26:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 43967,
                      "name": "readLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43437,
                      "src": "17296:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                      }
                    },
                    "id": 43972,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17296:51:118",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17282:65:118"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 43976,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 43974,
                      "name": "length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43966,
                      "src": "17358:6:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 43975,
                      "name": "UINT64_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42696,
                      "src": "17367:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "17358:19:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 44019,
                    "nodeType": "Block",
                    "src": "17623:53:118",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 44016,
                              "name": "length",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43966,
                              "src": "17661:6:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 44015,
                            "name": "InvalidLengthEncoding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42702,
                            "src": "17639:21:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
                              "typeString": "function (uint256) pure returns (error)"
                            }
                          },
                          "id": 44017,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17639:29:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_error",
                            "typeString": "error"
                          }
                        },
                        "id": 44018,
                        "nodeType": "RevertStatement",
                        "src": "17632:36:118"
                      }
                    ]
                  },
                  "id": 44020,
                  "nodeType": "IfStatement",
                  "src": "17354:322:118",
                  "trueBody": {
                    "id": 44014,
                    "nodeType": "Block",
                    "src": "17379:238:118",
                    "statements": [
                      {
                        "expression": {
                          "id": 43983,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 43977,
                            "name": "strings",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43963,
                            "src": "17388:7:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                              "typeString": "string memory[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 43981,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 43966,
                                "src": "17411:6:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 43980,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "17398:12:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (string memory[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 43978,
                                  "name": "string",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "17402:6:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage_ptr",
                                    "typeString": "string"
                                  }
                                },
                                "id": 43979,
                                "nodeType": "ArrayTypeName",
                                "src": "17402:8:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                                  "typeString": "string[]"
                                }
                              }
                            },
                            "id": 43982,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "17398:20:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                              "typeString": "string memory[] memory"
                            }
                          },
                          "src": "17388:30:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                            "typeString": "string memory[] memory"
                          }
                        },
                        "id": 43984,
                        "nodeType": "ExpressionStatement",
                        "src": "17388:30:118"
                      },
                      {
                        "body": {
                          "id": 44012,
                          "nodeType": "Block",
                          "src": "17458:152:118",
                          "statements": [
                            {
                              "assignments": [
                                43994
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 43994,
                                  "mutability": "mutable",
                                  "name": "item",
                                  "nameLocation": "17481:4:118",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 44012,
                                  "src": "17469:16:118",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR"
                                  },
                                  "typeName": {
                                    "id": 43993,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 43992,
                                      "name": "CBOR",
                                      "nameLocations": [
                                        "17469:4:118"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 42658,
                                      "src": "17469:4:118"
                                    },
                                    "referencedDeclaration": 42658,
                                    "src": "17469:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 43999,
                              "initialValue": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 43996,
                                      "name": "cbor",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43955,
                                      "src": "17499:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 43997,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "17504:6:118",
                                    "memberName": "buffer",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 42647,
                                    "src": "17499:11:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  ],
                                  "id": 43995,
                                  "name": "fromBuffer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42908,
                                  "src": "17488:10:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_struct$_CBOR_$42658_memory_ptr_$",
                                    "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                  }
                                },
                                "id": 43998,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "17488:23:118",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "17469:42:118"
                            },
                            {
                              "expression": {
                                "id": 44006,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 44000,
                                    "name": "strings",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43963,
                                    "src": "17522:7:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "string memory[] memory"
                                    }
                                  },
                                  "id": 44002,
                                  "indexExpression": {
                                    "id": 44001,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43986,
                                    "src": "17530:1:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "17522:10:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "id": 44004,
                                      "name": "item",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43994,
                                      "src": "17546:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    ],
                                    "id": 44003,
                                    "name": "readString",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 43951,
                                    "src": "17535:10:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_string_memory_ptr_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (string memory)"
                                    }
                                  },
                                  "id": 44005,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "17535:16:118",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "src": "17522:29:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              "id": 44007,
                              "nodeType": "ExpressionStatement",
                              "src": "17522:29:118"
                            },
                            {
                              "id": 44011,
                              "nodeType": "UncheckedBlock",
                              "src": "17562:39:118",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 44009,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "UnaryOperation",
                                    "operator": "++",
                                    "prefix": false,
                                    "src": "17585:4:118",
                                    "subExpression": {
                                      "id": 44008,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 43986,
                                      "src": "17585:1:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 44010,
                                  "nodeType": "ExpressionStatement",
                                  "src": "17585:4:118"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 43991,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 43989,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43986,
                            "src": "17444:1:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 43990,
                            "name": "length",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 43966,
                            "src": "17448:6:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "17444:10:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 44013,
                        "initializationExpression": {
                          "assignments": [
                            43986
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 43986,
                              "mutability": "mutable",
                              "name": "i",
                              "nameLocation": "17437:1:118",
                              "nodeType": "VariableDeclaration",
                              "scope": 44013,
                              "src": "17432:6:118",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 43985,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "17432:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 43988,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 43987,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17441:1:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "17432:10:118"
                        },
                        "isSimpleCounterLoop": false,
                        "nodeType": "ForStatement",
                        "src": "17427:183:118"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 43952,
              "nodeType": "StructuredDocumentation",
              "src": "16932:194:118",
              "text": "@notice Decode a `CBOR` structure into a native `string[]` value.\n @param cbor An instance of `CBOR`.\n @return strings The value represented by the input, as an `string[]` value."
            },
            "id": 44022,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 43958,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 43955,
                    "src": "17209:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 43959,
                    "name": "MAJOR_TYPE_ARRAY",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42673,
                    "src": "17215:16:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 43960,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 43957,
                  "name": "isMajorType",
                  "nameLocations": [
                    "17197:11:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42737,
                  "src": "17197:11:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "17197:35:118"
              }
            ],
            "name": "readStringArray",
            "nameLocation": "17139:15:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 43956,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43955,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "17167:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 44022,
                  "src": "17155:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 43954,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43953,
                      "name": "CBOR",
                      "nameLocations": [
                        "17155:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "17155:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "17155:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17154:18:118"
            },
            "returnParameters": {
              "id": 43964,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43963,
                  "mutability": "mutable",
                  "name": "strings",
                  "nameLocation": "17263:7:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 44022,
                  "src": "17247:23:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 43961,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "17247:6:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 43962,
                    "nodeType": "ArrayTypeName",
                    "src": "17247:8:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17246:25:118"
            },
            "scope": 44174,
            "src": "17130:551:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 44042,
              "nodeType": "Block",
              "src": "17992:92:118",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 44036,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44026,
                          "src": "18025:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 44037,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "18030:6:118",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42647,
                        "src": "18025:11:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 44038,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44026,
                          "src": "18045:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 44039,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "18050:21:118",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42653,
                        "src": "18045:26:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 44035,
                      "name": "readLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43437,
                      "src": "18006:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                      }
                    },
                    "id": 44040,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18006:72:118",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "functionReturnParameters": 44034,
                  "id": 44041,
                  "nodeType": "Return",
                  "src": "17999:79:118"
                }
              ]
            },
            "documentation": {
              "id": 44023,
              "nodeType": "StructuredDocumentation",
              "src": "17687:182:118",
              "text": "@notice Decode a `CBOR` structure into a native `uint64` value.\n @param cbor An instance of `CBOR`.\n @return The value represented by the input, as an `uint64` value."
            },
            "id": 44043,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 44029,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 44026,
                    "src": "17945:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 44030,
                    "name": "MAJOR_TYPE_INT",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42661,
                    "src": "17951:14:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 44031,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 44028,
                  "name": "isMajorType",
                  "nameLocations": [
                    "17933:11:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42737,
                  "src": "17933:11:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "17933:33:118"
              }
            ],
            "name": "readUint",
            "nameLocation": "17882:8:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 44027,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44026,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "17903:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 44043,
                  "src": "17891:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 44025,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 44024,
                      "name": "CBOR",
                      "nameLocations": [
                        "17891:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "17891:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "17891:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17890:18:118"
            },
            "returnParameters": {
              "id": 44034,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44033,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44043,
                  "src": "17981:6:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 44032,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "17981:6:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "17980:8:118"
            },
            "scope": 44174,
            "src": "17873:211:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 44113,
              "nodeType": "Block",
              "src": "18429:408:118",
              "statements": [
                {
                  "assignments": [
                    44058
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 44058,
                      "mutability": "mutable",
                      "name": "length",
                      "nameLocation": "18443:6:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 44113,
                      "src": "18436:13:118",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 44057,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "18436:6:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 44065,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 44060,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44047,
                          "src": "18463:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 44061,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "18468:6:118",
                        "memberName": "buffer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42647,
                        "src": "18463:11:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 44062,
                          "name": "cbor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44047,
                          "src": "18476:4:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                            "typeString": "struct WitnetCBOR.CBOR memory"
                          }
                        },
                        "id": 44063,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "18481:21:118",
                        "memberName": "additionalInformation",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42653,
                        "src": "18476:26:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      ],
                      "id": 44059,
                      "name": "readLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 43437,
                      "src": "18452:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                      }
                    },
                    "id": 44064,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18452:51:118",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18436:67:118"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 44068,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 44066,
                      "name": "length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44058,
                      "src": "18514:6:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 44067,
                      "name": "UINT64_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42696,
                      "src": "18523:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "18514:19:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 44111,
                    "nodeType": "Block",
                    "src": "18779:53:118",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 44108,
                              "name": "length",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44058,
                              "src": "18817:6:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 44107,
                            "name": "InvalidLengthEncoding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42702,
                            "src": "18795:21:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
                              "typeString": "function (uint256) pure returns (error)"
                            }
                          },
                          "id": 44109,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "18795:29:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_error",
                            "typeString": "error"
                          }
                        },
                        "id": 44110,
                        "nodeType": "RevertStatement",
                        "src": "18788:36:118"
                      }
                    ]
                  },
                  "id": 44112,
                  "nodeType": "IfStatement",
                  "src": "18510:322:118",
                  "trueBody": {
                    "id": 44106,
                    "nodeType": "Block",
                    "src": "18535:238:118",
                    "statements": [
                      {
                        "expression": {
                          "id": 44075,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44069,
                            "name": "values",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44055,
                            "src": "18544:6:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr",
                              "typeString": "uint64[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 44073,
                                "name": "length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 44058,
                                "src": "18566:6:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "id": 44072,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "18553:12:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint64_$dyn_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (uint64[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 44070,
                                  "name": "uint64",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "18557:6:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "id": 44071,
                                "nodeType": "ArrayTypeName",
                                "src": "18557:8:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint64_$dyn_storage_ptr",
                                  "typeString": "uint64[]"
                                }
                              }
                            },
                            "id": 44074,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "18553:20:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr",
                              "typeString": "uint64[] memory"
                            }
                          },
                          "src": "18544:29:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr",
                            "typeString": "uint64[] memory"
                          }
                        },
                        "id": 44076,
                        "nodeType": "ExpressionStatement",
                        "src": "18544:29:118"
                      },
                      {
                        "body": {
                          "id": 44104,
                          "nodeType": "Block",
                          "src": "18615:151:118",
                          "statements": [
                            {
                              "assignments": [
                                44086
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 44086,
                                  "mutability": "mutable",
                                  "name": "item",
                                  "nameLocation": "18638:4:118",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 44104,
                                  "src": "18626:16:118",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR"
                                  },
                                  "typeName": {
                                    "id": 44085,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 44084,
                                      "name": "CBOR",
                                      "nameLocations": [
                                        "18626:4:118"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 42658,
                                      "src": "18626:4:118"
                                    },
                                    "referencedDeclaration": 42658,
                                    "src": "18626:4:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                                      "typeString": "struct WitnetCBOR.CBOR"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 44091,
                              "initialValue": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 44088,
                                      "name": "cbor",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 44047,
                                      "src": "18656:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    },
                                    "id": 44089,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "18661:6:118",
                                    "memberName": "buffer",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 42647,
                                    "src": "18656:11:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                                      "typeString": "struct WitnetBuffer.Buffer memory"
                                    }
                                  ],
                                  "id": 44087,
                                  "name": "fromBuffer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42908,
                                  "src": "18645:10:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_struct$_CBOR_$42658_memory_ptr_$",
                                    "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (struct WitnetCBOR.CBOR memory)"
                                  }
                                },
                                "id": 44090,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "18645:23:118",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                  "typeString": "struct WitnetCBOR.CBOR memory"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "18626:42:118"
                            },
                            {
                              "expression": {
                                "id": 44098,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 44092,
                                    "name": "values",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44055,
                                    "src": "18679:6:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr",
                                      "typeString": "uint64[] memory"
                                    }
                                  },
                                  "id": 44094,
                                  "indexExpression": {
                                    "id": 44093,
                                    "name": "ix",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44078,
                                    "src": "18686:2:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "18679:10:118",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "id": 44096,
                                      "name": "item",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 44086,
                                      "src": "18701:4:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                                        "typeString": "struct WitnetCBOR.CBOR memory"
                                      }
                                    ],
                                    "id": 44095,
                                    "name": "readUint",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44043,
                                    "src": "18692:8:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$42658_memory_ptr_$returns$_t_uint64_$",
                                      "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (uint64)"
                                    }
                                  },
                                  "id": 44097,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "18692:14:118",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "src": "18679:27:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "id": 44099,
                              "nodeType": "ExpressionStatement",
                              "src": "18679:27:118"
                            },
                            {
                              "id": 44103,
                              "nodeType": "UncheckedBlock",
                              "src": "18717:40:118",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 44101,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "UnaryOperation",
                                    "operator": "++",
                                    "prefix": false,
                                    "src": "18740:5:118",
                                    "subExpression": {
                                      "id": 44100,
                                      "name": "ix",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 44078,
                                      "src": "18740:2:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 44102,
                                  "nodeType": "ExpressionStatement",
                                  "src": "18740:5:118"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44083,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44081,
                            "name": "ix",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44078,
                            "src": "18600:2:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 44082,
                            "name": "length",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44058,
                            "src": "18605:6:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "18600:11:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 44105,
                        "initializationExpression": {
                          "assignments": [
                            44078
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 44078,
                              "mutability": "mutable",
                              "name": "ix",
                              "nameLocation": "18592:2:118",
                              "nodeType": "VariableDeclaration",
                              "scope": 44105,
                              "src": "18587:7:118",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 44077,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "18587:4:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 44080,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 44079,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18597:1:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "18587:11:118"
                        },
                        "isSimpleCounterLoop": false,
                        "nodeType": "ForStatement",
                        "src": "18582:184:118"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 44044,
              "nodeType": "StructuredDocumentation",
              "src": "18090:193:118",
              "text": "@notice Decode a `CBOR` structure into a native `uint64[]` value.\n @param cbor An instance of `CBOR`.\n @return values The value represented by the input, as an `uint64[]` value."
            },
            "id": 44114,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 44050,
                    "name": "cbor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 44047,
                    "src": "18364:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  {
                    "id": 44051,
                    "name": "MAJOR_TYPE_ARRAY",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 42673,
                    "src": "18370:16:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  }
                ],
                "id": 44052,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 44049,
                  "name": "isMajorType",
                  "nameLocations": [
                    "18352:11:118"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 42737,
                  "src": "18352:11:118"
                },
                "nodeType": "ModifierInvocation",
                "src": "18352:35:118"
              }
            ],
            "name": "readUintArray",
            "nameLocation": "18296:13:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 44048,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44047,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "18322:4:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 44114,
                  "src": "18310:16:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$42658_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 44046,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 44045,
                      "name": "CBOR",
                      "nameLocations": [
                        "18310:4:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42658,
                      "src": "18310:4:118"
                    },
                    "referencedDeclaration": 42658,
                    "src": "18310:4:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$42658_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18309:18:118"
            },
            "returnParameters": {
              "id": 44056,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44055,
                  "mutability": "mutable",
                  "name": "values",
                  "nameLocation": "18418:6:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 44114,
                  "src": "18402:22:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr",
                    "typeString": "uint64[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 44053,
                      "name": "uint64",
                      "nodeType": "ElementaryTypeName",
                      "src": "18402:6:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "id": 44054,
                    "nodeType": "ArrayTypeName",
                    "src": "18402:8:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint64_$dyn_storage_ptr",
                      "typeString": "uint64[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18401:24:118"
            },
            "scope": 44174,
            "src": "18287:550:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 44172,
              "nodeType": "Block",
              "src": "19174:384:118",
              "statements": [
                {
                  "assignments": [
                    44126
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 44126,
                      "mutability": "mutable",
                      "name": "initialByte",
                      "nameLocation": "19187:11:118",
                      "nodeType": "VariableDeclaration",
                      "scope": 44172,
                      "src": "19181:17:118",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 44125,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "19181:5:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 44130,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 44127,
                        "name": "buffer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44118,
                        "src": "19201:6:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                          "typeString": "struct WitnetBuffer.Buffer memory"
                        }
                      },
                      "id": 44128,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "19208:9:118",
                      "memberName": "readUint8",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 41701,
                      "src": "19201:16:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$returns$_t_uint8_$attached_to$_t_struct$_Buffer_$40764_memory_ptr_$",
                        "typeString": "function (struct WitnetBuffer.Buffer memory) pure returns (uint8)"
                      }
                    },
                    "id": 44129,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19201:18:118",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "19181:38:118"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 44133,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 44131,
                      "name": "initialByte",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44126,
                      "src": "19230:11:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30786666",
                      "id": 44132,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19245:4:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_255_by_1",
                        "typeString": "int_const 255"
                      },
                      "value": "0xff"
                    },
                    "src": "19230:19:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 44137,
                  "nodeType": "IfStatement",
                  "src": "19226:59:118",
                  "trueBody": {
                    "id": 44136,
                    "nodeType": "Block",
                    "src": "19251:34:118",
                    "statements": [
                      {
                        "expression": {
                          "id": 44134,
                          "name": "UINT64_MAX",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42696,
                          "src": "19267:10:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "functionReturnParameters": 44124,
                        "id": 44135,
                        "nodeType": "Return",
                        "src": "19260:17:118"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 44145,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 44138,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44123,
                      "src": "19291:3:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 44140,
                          "name": "buffer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44118,
                          "src": "19316:6:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          }
                        },
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 44143,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44141,
                            "name": "initialByte",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44126,
                            "src": "19331:11:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "30783166",
                            "id": 44142,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "19345:4:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_31_by_1",
                              "typeString": "int_const 31"
                            },
                            "value": "0x1f"
                          },
                          "src": "19331:18:118",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                            "typeString": "struct WitnetBuffer.Buffer memory"
                          },
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 44139,
                        "name": "readLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 43437,
                        "src": "19297:10:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_Buffer_$40764_memory_ptr_$_t_uint8_$returns$_t_uint64_$",
                          "typeString": "function (struct WitnetBuffer.Buffer memory,uint8) pure returns (uint64)"
                        }
                      },
                      "id": 44144,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19297:59:118",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "19291:65:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "id": 44146,
                  "nodeType": "ExpressionStatement",
                  "src": "19291:65:118"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 44149,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 44147,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44123,
                      "src": "19367:3:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "id": 44148,
                      "name": "UINT64_MAX",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 42696,
                      "src": "19374:10:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "19367:17:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 44160,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 44155,
                        "name": "majorType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44120,
                        "src": "19446:9:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 44158,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 44156,
                              "name": "initialByte",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44126,
                              "src": "19460:11:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "35",
                              "id": 44157,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "19475:1:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            },
                            "src": "19460:16:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          }
                        ],
                        "id": 44159,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "19459:18:118",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "src": "19446:31:118",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "id": 44170,
                    "nodeType": "IfStatement",
                    "src": "19442:111:118",
                    "trueBody": {
                      "id": 44169,
                      "nodeType": "Block",
                      "src": "19479:74:118",
                      "statements": [
                        {
                          "errorCall": {
                            "arguments": [
                              {
                                "components": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    },
                                    "id": 44164,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 44162,
                                      "name": "initialByte",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 44126,
                                      "src": "19516:11:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "hexValue": "35",
                                      "id": 44163,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "19531:1:118",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_5_by_1",
                                        "typeString": "int_const 5"
                                      },
                                      "value": "5"
                                    },
                                    "src": "19516:16:118",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "id": 44165,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "19515:18:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              {
                                "id": 44166,
                                "name": "majorType",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 44120,
                                "src": "19535:9:118",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 44161,
                              "name": "UnexpectedMajorType",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42708,
                              "src": "19495:19:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$",
                                "typeString": "function (uint256,uint256) pure returns (error)"
                              }
                            },
                            "id": 44167,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "19495:50:118",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_error",
                              "typeString": "error"
                            }
                          },
                          "id": 44168,
                          "nodeType": "RevertStatement",
                          "src": "19488:57:118"
                        }
                      ]
                    }
                  },
                  "id": 44171,
                  "nodeType": "IfStatement",
                  "src": "19363:190:118",
                  "trueBody": {
                    "id": 44154,
                    "nodeType": "Block",
                    "src": "19386:50:118",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "id": 44151,
                              "name": "len",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44123,
                              "src": "19424:3:118",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 44150,
                            "name": "InvalidLengthEncoding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42702,
                            "src": "19402:21:118",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$",
                              "typeString": "function (uint256) pure returns (error)"
                            }
                          },
                          "id": 44152,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19402:26:118",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_error",
                            "typeString": "error"
                          }
                        },
                        "id": 44153,
                        "nodeType": "RevertStatement",
                        "src": "19395:33:118"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 44115,
              "nodeType": "StructuredDocumentation",
              "src": "18845:168:118",
              "text": "Read the length of a CBOR indifinite-length item (arrays, maps, byte strings and text) from a buffer, consuming\n as many bytes as specified by the first byte."
            },
            "id": 44173,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_readIndefiniteStringLength",
            "nameLocation": "19026:27:118",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 44121,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44118,
                  "mutability": "mutable",
                  "name": "buffer",
                  "nameLocation": "19089:6:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 44173,
                  "src": "19062:33:118",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Buffer_$40764_memory_ptr",
                    "typeString": "struct WitnetBuffer.Buffer"
                  },
                  "typeName": {
                    "id": 44117,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 44116,
                      "name": "WitnetBuffer.Buffer",
                      "nameLocations": [
                        "19062:12:118",
                        "19075:6:118"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 40764,
                      "src": "19062:19:118"
                    },
                    "referencedDeclaration": 40764,
                    "src": "19062:19:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Buffer_$40764_storage_ptr",
                      "typeString": "struct WitnetBuffer.Buffer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44120,
                  "mutability": "mutable",
                  "name": "majorType",
                  "nameLocation": "19110:9:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 44173,
                  "src": "19104:15:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 44119,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "19104:5:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19053:73:118"
            },
            "returnParameters": {
              "id": 44124,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44123,
                  "mutability": "mutable",
                  "name": "len",
                  "nameLocation": "19166:3:118",
                  "nodeType": "VariableDeclaration",
                  "scope": 44173,
                  "src": "19159:10:118",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 44122,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "19159:6:118",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19158:12:118"
            },
            "scope": 44174,
            "src": "19017:541:118",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          }
        ],
        "scope": 44175,
        "src": "536:19028:118",
        "usedErrors": [
          42698,
          42702,
          42708,
          42712,
          42716
        ],
        "usedEvents": []
      }
    ],
    "src": "35:19529:118"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.30+commit.73712a01.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-10-15T14:34:46.023Z",
  "devdoc": {
    "author": "The Witnet Foundation.",
    "details": "Most of the logic has been borrowed from Patrick Gansterer’s cbor.js library: https://github.com/paroga/cbor-js",
    "kind": "dev",
    "methods": {},
    "title": "A minimalistic implementation of “RFC 7049 Concise Binary Object Representation”",
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "notice": "This library leverages a buffer-like structure for step-by-step decoding of bytes so as to minimize the gas cost of decoding them into a useful native type.",
    "version": 1
  }
}