{
  "contractName": "Witnet",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/libs/Witnet.sol\":\"Witnet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x65a87375dd79d63a83fb454b7199b6c999bd59c50b3b59d521c5c4d45a7d3cc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca865b681d810c2fc5c3672ea6343c3bdf6fd71764ab824d25994744dc85866b\",\"dweb:/ipfs/QmPGcP3xGTNZfsQ9GSKdujNLRVs8dWDdubyUko1rbQqJNv\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0xa14570492eb5a313ddbacae0185c850ec99c67211eb33989a5e21d31bf06a150\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e83c11edb49cab6a767c0b685825bc22ece0d3d2897e0d54fe1923df5cc76ba5\",\"dweb:/ipfs/QmdLDgCc3tnKbgRrXwfNzsg6uUDirNmjvBB8V3iMmnD69a\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xb346547ff731163beea2c657c52675cdf7936691d566a76a045577cf9c34ade0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d4b5b6424a033584b41f1204d635db98fda9ca9bd2a614c9d82539a3e4e6529\",\"dweb:/ipfs/QmW6Qy3wWpzHSECYaCPaf9LWGfPqWDKVoP2kPSNNQu7LMQ\"]}},\"version\":1}",
  "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200395a8070e2ff7ff017b95bb42096ae8c9b66f9e85390b353ad8d1c795a659c264736f6c63430008190033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200395a8070e2ff7ff017b95bb42096ae8c9b66f9e85390b353ad8d1c795a659c264736f6c63430008190033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "135:31790:64:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;135:31790:64;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "135:31790:64:-:0;;;;;;;;",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.7.0 <0.9.0;\r\npragma experimental ABIEncoderV2;\r\n\r\nimport \"./WitnetCBOR.sol\";\r\n\r\nlibrary Witnet {\r\n\r\n    using WitnetBuffer for WitnetBuffer.Buffer;\r\n    using WitnetCBOR for WitnetCBOR.CBOR;\r\n    using WitnetCBOR for WitnetCBOR.CBOR[];\r\n\r\n    /// Struct containing both request and response data related to every query posted to the Witnet Request Board\r\n    struct Query {\r\n        Request request;\r\n        Response response;\r\n        address from;      // Address from which the request was posted.\r\n    }\r\n\r\n    /// Possible status of a Witnet query.\r\n    enum QueryStatus {\r\n        Unknown,\r\n        Posted,\r\n        Reported,\r\n        Deleted\r\n    }\r\n\r\n    /// Data kept in EVM-storage for every Request posted to the Witnet Request Board.\r\n    struct Request {\r\n        address addr;       // Address of the (deprecated) IWitnetRequest contract containing Witnet data request raw bytecode.\r\n        bytes32 slaHash;    // Radon SLA hash of the Witnet data request.\r\n        bytes32 radHash;    // Radon radHash of the Witnet data request.\r\n        uint256 gasprice;   // Minimum gas price the DR resolver should pay on the solving tx.\r\n        uint256 reward;     // Escrowed reward to be paid to the DR resolver.\r\n    }\r\n\r\n    /// Data kept in EVM-storage containing the Witnet-provided response metadata and CBOR-encoded result.\r\n    struct Response {\r\n        address reporter;       // Address from which the result was reported.\r\n        uint256 timestamp;      // Timestamp of the Witnet-provided result.\r\n        bytes32 drTxHash;       // Hash of the Witnet transaction that solved the queried Data Request.\r\n        bytes   cborBytes;      // Witnet-provided result CBOR-bytes to the queried Data Request.\r\n    }\r\n\r\n    /// Data struct containing the Witnet-provided result to a Data Request.\r\n    struct Result {\r\n        bool success;           // Flag stating whether the request could get solved successfully, or not.\r\n        WitnetCBOR.CBOR value;  // Resulting value, in CBOR-serialized bytes.\r\n    }\r\n\r\n    /// Final query's result status from a requester's point of view.\r\n    enum ResultStatus {\r\n        Void,\r\n        Awaiting,\r\n        Ready,\r\n        Error\r\n    }\r\n\r\n    /// Data struct describing an error when trying to fetch a Witnet-provided result to a Data Request.\r\n    struct ResultError {\r\n        ResultErrorCodes code;\r\n        string reason;\r\n    }\r\n\r\n    enum ResultErrorCodes {\r\n        /// 0x00: Unknown error. Something went really bad!\r\n        Unknown, \r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Source-specific format error sub-codes ============================================================================\r\n        /// 0x01: At least one of the source scripts is not a valid CBOR-encoded value.\r\n        SourceScriptNotCBOR, \r\n        /// 0x02: The CBOR value decoded from a source script is not an Array.\r\n        SourceScriptNotArray,\r\n        /// 0x03: The Array value decoded form a source script is not a valid Data Request.\r\n        SourceScriptNotRADON,\r\n        /// 0x04: The request body of at least one data source was not properly formated.\r\n        SourceRequestBody,\r\n        /// 0x05: The request headers of at least one data source was not properly formated.\r\n        SourceRequestHeaders,\r\n        /// 0x06: The request URL of at least one data source was not properly formated.\r\n        SourceRequestURL,\r\n        /// Unallocated\r\n        SourceFormat0x07, SourceFormat0x08, SourceFormat0x09, SourceFormat0x0A, SourceFormat0x0B, SourceFormat0x0C,\r\n        SourceFormat0x0D, SourceFormat0x0E, SourceFormat0x0F, \r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Complexity error sub-codes ========================================================================================\r\n        /// 0x10: The request contains too many sources.\r\n        RequestTooManySources,\r\n        /// 0x11: The script contains too many calls.\r\n        ScriptTooManyCalls,\r\n        /// Unallocated\r\n        Complexity0x12, Complexity0x13, Complexity0x14, Complexity0x15, Complexity0x16, Complexity0x17, Complexity0x18,\r\n        Complexity0x19, Complexity0x1A, Complexity0x1B, Complexity0x1C, Complexity0x1D, Complexity0x1E, Complexity0x1F,\r\n\r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Lack of support error sub-codes ===================================================================================\r\n        /// 0x20: Some Radon operator code was found that is not supported (1+ args).\r\n        UnsupportedOperator,\r\n        /// 0x21: Some Radon filter opcode is not currently supported (1+ args).\r\n        UnsupportedFilter,\r\n        /// 0x22: Some Radon request type is not currently supported (1+ args).\r\n        UnsupportedHashFunction,\r\n        /// 0x23: Some Radon reducer opcode is not currently supported (1+ args)\r\n        UnsupportedReducer,\r\n        /// 0x24: Some Radon hash function is not currently supported (1+ args).\r\n        UnsupportedRequestType, \r\n        /// 0x25: Some Radon encoding function is not currently supported (1+ args).\r\n        UnsupportedEncodingFunction,\r\n        /// Unallocated\r\n        Operator0x26, Operator0x27, \r\n        /// 0x28: Wrong number (or type) of arguments were passed to some Radon operator.\r\n        WrongArguments,\r\n        /// Unallocated\r\n        Operator0x29, Operator0x2A, Operator0x2B, Operator0x2C, Operator0x2D, Operator0x2E, Operator0x2F,\r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Retrieve-specific circumstantial error sub-codes ================================================================================\r\n        /// 0x30: A majority of data sources returned an HTTP status code other than 200 (1+ args):\r\n        HttpErrors,\r\n        /// 0x31: A majority of data sources timed out:\r\n        RetrievalsTimeout,\r\n        /// Unallocated\r\n        RetrieveCircumstance0x32, RetrieveCircumstance0x33, RetrieveCircumstance0x34, RetrieveCircumstance0x35,\r\n        RetrieveCircumstance0x36, RetrieveCircumstance0x37, RetrieveCircumstance0x38, RetrieveCircumstance0x39,\r\n        RetrieveCircumstance0x3A, RetrieveCircumstance0x3B, RetrieveCircumstance0x3C, RetrieveCircumstance0x3D,\r\n        RetrieveCircumstance0x3E, RetrieveCircumstance0x3F,\r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Scripting-specific runtime error sub-code =========================================================================\r\n        /// 0x40: Math operator caused an underflow.\r\n        MathUnderflow,\r\n        /// 0x41: Math operator caused an overflow.\r\n        MathOverflow,\r\n        /// 0x42: Math operator tried to divide by zero.\r\n        MathDivisionByZero,            \r\n        /// 0x43:Wrong input to subscript call.\r\n        WrongSubscriptInput,\r\n        /// 0x44: Value cannot be extracted from input binary buffer.\r\n        BufferIsNotValue,\r\n        /// 0x45: Value cannot be decoded from expected type.\r\n        Decode,\r\n        /// 0x46: Unexpected empty array.\r\n        EmptyArray,\r\n        /// 0x47: Value cannot be encoded to expected type.\r\n        Encode,\r\n        /// 0x48: Failed to filter input values (1+ args).\r\n        Filter,\r\n        /// 0x49: Failed to hash input value.\r\n        Hash,\r\n        /// 0x4A: Mismatching array ranks.\r\n        MismatchingArrays,\r\n        /// 0x4B: Failed to process non-homogenous array.\r\n        NonHomegeneousArray,\r\n        /// 0x4C: Failed to parse syntax of some input value, or argument.\r\n        Parse,\r\n        /// 0x4E: Parsing logic limits were exceeded.\r\n        ParseOverflow,\r\n        /// 0x4F: Unallocated\r\n        ScriptError0x4F,\r\n    \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Actual first-order result error codes =============================================================================\r\n        /// 0x50: Not enough reveals were received in due time:\r\n        InsufficientReveals,\r\n        /// 0x51: No actual reveal majority was reached on tally stage:\r\n        InsufficientMajority,\r\n        /// 0x52: Not enough commits were received before tally stage:\r\n        InsufficientCommits,\r\n        /// 0x53: Generic error during tally execution (to be deprecated after WIP #0028)\r\n        TallyExecution,\r\n        /// 0x54: A majority of data sources could either be temporarily unresponsive or failing to report the requested data:\r\n        CircumstantialFailure,\r\n        /// 0x55: At least one data source is inconsistent when queried through multiple transports at once:\r\n        InconsistentSources,\r\n        /// 0x56: Any one of the (multiple) Retrieve, Aggregate or Tally scripts were badly formated:\r\n        MalformedDataRequest,\r\n        /// 0x57: Values returned from a majority of data sources don't match the expected schema:\r\n        MalformedResponses,\r\n        /// Unallocated:    \r\n        OtherError0x58, OtherError0x59, OtherError0x5A, OtherError0x5B, OtherError0x5C, OtherError0x5D, OtherError0x5E, \r\n        /// 0x5F: Size of serialized tally result exceeds allowance:\r\n        OversizedTallyResult,\r\n\r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Inter-stage runtime error sub-codes ===============================================================================\r\n        /// 0x60: Data aggregation reveals could not get decoded on the tally stage:\r\n        MalformedReveals,\r\n        /// 0x61: The result to data aggregation could not get encoded:\r\n        EncodeReveals,  \r\n        /// 0x62: A mode tie ocurred when calculating some mode value on the aggregation or the tally stage:\r\n        ModeTie, \r\n        /// Unallocated:\r\n        OtherError0x63, OtherError0x64, OtherError0x65, OtherError0x66, OtherError0x67, OtherError0x68, OtherError0x69, \r\n        OtherError0x6A, OtherError0x6B, OtherError0x6C, OtherError0x6D, OtherError0x6E, OtherError0x6F,\r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Runtime access error sub-codes ====================================================================================\r\n        /// 0x70: Tried to access a value from an array using an index that is out of bounds (1+ args):\r\n        ArrayIndexOutOfBounds,\r\n        /// 0x71: Tried to access a value from a map using a key that does not exist (1+ args):\r\n        MapKeyNotFound,\r\n        /// 0X72: Tried to extract value from a map using a JSON Path that returns no values (+1 args):\r\n        JsonPathNotFound,\r\n        /// Unallocated:\r\n        OtherError0x73, OtherError0x74, OtherError0x75, OtherError0x76, OtherError0x77, OtherError0x78, \r\n        OtherError0x79, OtherError0x7A, OtherError0x7B, OtherError0x7C, OtherError0x7D, OtherError0x7E, OtherError0x7F, \r\n        OtherError0x80, OtherError0x81, OtherError0x82, OtherError0x83, OtherError0x84, OtherError0x85, OtherError0x86, \r\n        OtherError0x87, OtherError0x88, OtherError0x89, OtherError0x8A, OtherError0x8B, OtherError0x8C, OtherError0x8D, \r\n        OtherError0x8E, OtherError0x8F, OtherError0x90, OtherError0x91, OtherError0x92, OtherError0x93, OtherError0x94, \r\n        OtherError0x95, OtherError0x96, OtherError0x97, OtherError0x98, OtherError0x99, OtherError0x9A, OtherError0x9B,\r\n        OtherError0x9C, OtherError0x9D, OtherError0x9E, OtherError0x9F, OtherError0xA0, OtherError0xA1, OtherError0xA2, \r\n        OtherError0xA3, OtherError0xA4, OtherError0xA5, OtherError0xA6, OtherError0xA7, OtherError0xA8, OtherError0xA9, \r\n        OtherError0xAA, OtherError0xAB, OtherError0xAC, OtherError0xAD, OtherError0xAE, OtherError0xAF, OtherError0xB0,\r\n        OtherError0xB1, OtherError0xB2, OtherError0xB3, OtherError0xB4, OtherError0xB5, OtherError0xB6, OtherError0xB7,\r\n        OtherError0xB8, OtherError0xB9, OtherError0xBA, OtherError0xBB, OtherError0xBC, OtherError0xBD, OtherError0xBE,\r\n        OtherError0xBF, OtherError0xC0, OtherError0xC1, OtherError0xC2, OtherError0xC3, OtherError0xC4, OtherError0xC5,\r\n        OtherError0xC6, OtherError0xC7, OtherError0xC8, OtherError0xC9, OtherError0xCA, OtherError0xCB, OtherError0xCC,\r\n        OtherError0xCD, OtherError0xCE, OtherError0xCF, OtherError0xD0, OtherError0xD1, OtherError0xD2, OtherError0xD3,\r\n        OtherError0xD4, OtherError0xD5, OtherError0xD6, OtherError0xD7, OtherError0xD8, OtherError0xD9, OtherError0xDA,\r\n        OtherError0xDB, OtherError0xDC, OtherError0xDD, OtherError0xDE, OtherError0xDF,\r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Inter-client generic error codes ==================================================================================\r\n        /// Data requests that cannot be relayed into the Witnet blockchain should be reported\r\n        /// with one of these errors. \r\n        /// 0xE0: Requests that cannot be parsed must always get this error as their result.\r\n        BridgeMalformedDataRequest,\r\n        /// 0xE1: Witnesses exceeds 100\r\n        BridgePoorIncentives,\r\n        /// 0xE2: The request is rejected on the grounds that it may cause the submitter to spend or stake an\r\n        /// amount of value that is unjustifiably high when compared with the reward they will be getting\r\n        BridgeOversizedTallyResult,\r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// Unallocated =======================================================================================================\r\n        OtherError0xE3, OtherError0xE4, OtherError0xE5, OtherError0xE6, OtherError0xE7, OtherError0xE8, OtherError0xE9,\r\n        OtherError0xEA, OtherError0xEB, OtherError0xEC, OtherError0xED, OtherError0xEE, OtherError0xEF, OtherError0xF0,\r\n        OtherError0xF1, OtherError0xF2, OtherError0xF3, OtherError0xF4, OtherError0xF5, OtherError0xF6, OtherError0xF7,\r\n        OtherError0xF8, OtherError0xF9, OtherError0xFA, OtherError0xFB, OtherError0xFC, OtherError0xFD, OtherError0xFE,\r\n        \r\n        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n        /// 0xFF: Some tally error is not intercepted but it should (0+ args)\r\n        UnhandledIntercept\r\n    }\r\n\r\n    function isCircumstantial(ResultErrorCodes self) internal pure returns (bool) {\r\n        return (self == ResultErrorCodes.CircumstantialFailure);\r\n    }\r\n\r\n    function lackOfConsensus(ResultErrorCodes self) internal pure returns (bool) {\r\n        return (\r\n            self == ResultErrorCodes.InsufficientCommits\r\n                || self == ResultErrorCodes.InsufficientMajority\r\n                || self == ResultErrorCodes.InsufficientReveals\r\n        );\r\n    }\r\n\r\n    function isRetriable(ResultErrorCodes self) internal pure returns (bool) {\r\n        return (\r\n            lackOfConsensus(self)\r\n                || isCircumstantial(self)\r\n                || poorIncentives(self)\r\n        );\r\n    }\r\n\r\n    function poorIncentives(ResultErrorCodes self) internal pure returns (bool) {\r\n        return (\r\n            self == ResultErrorCodes.OversizedTallyResult\r\n                || self == ResultErrorCodes.InsufficientCommits\r\n                || self == ResultErrorCodes.BridgePoorIncentives\r\n                || self == ResultErrorCodes.BridgeOversizedTallyResult\r\n        );\r\n    }\r\n    \r\n\r\n    /// Possible Radon data request methods that can be used within a Radon Retrieval. \r\n    enum RadonDataRequestMethods {\r\n        /* 0 */ Unknown,\r\n        /* 1 */ HttpGet,\r\n        /* 2 */ RNG,\r\n        /* 3 */ HttpPost,\r\n        /* 4 */ HttpHead\r\n    }\r\n\r\n    /// Possible types either processed by Witnet Radon Scripts or included within results to Witnet Data Requests.\r\n    enum RadonDataTypes {\r\n        /* 0x00 */ Any, \r\n        /* 0x01 */ Array,\r\n        /* 0x02 */ Bool,\r\n        /* 0x03 */ Bytes,\r\n        /* 0x04 */ Integer,\r\n        /* 0x05 */ Float,\r\n        /* 0x06 */ Map,\r\n        /* 0x07 */ String,\r\n        Unused0x08, Unused0x09, Unused0x0A, Unused0x0B,\r\n        Unused0x0C, Unused0x0D, Unused0x0E, Unused0x0F,\r\n        /* 0x10 */ Same,\r\n        /* 0x11 */ Inner,\r\n        /* 0x12 */ Match,\r\n        /* 0x13 */ Subscript\r\n    }\r\n\r\n    /// Structure defining some data filtering that can be applied at the Aggregation or the Tally stages\r\n    /// within a Witnet Data Request resolution workflow.\r\n    struct RadonFilter {\r\n        RadonFilterOpcodes opcode;\r\n        bytes args;\r\n    }\r\n\r\n    /// Filtering methods currently supported on the Witnet blockchain. \r\n    enum RadonFilterOpcodes {\r\n        /* 0x00 */ Reserved0x00, //GreaterThan,\r\n        /* 0x01 */ Reserved0x01, //LessThan,\r\n        /* 0x02 */ Reserved0x02, //Equals,\r\n        /* 0x03 */ Reserved0x03, //AbsoluteDeviation,\r\n        /* 0x04 */ Reserved0x04, //RelativeDeviation\r\n        /* 0x05 */ StandardDeviation,\r\n        /* 0x06 */ Reserved0x06, //Top,\r\n        /* 0x07 */ Reserved0x07, //Bottom,\r\n        /* 0x08 */ Mode,\r\n        /* 0x09 */ Reserved0x09  //LessOrEqualThan\r\n    }\r\n\r\n    /// Structure defining the array of filters and reducting function to be applied at either the Aggregation\r\n    /// or the Tally stages within a Witnet Data Request resolution workflow.\r\n    struct RadonReducer {\r\n        RadonReducerOpcodes opcode;\r\n        RadonFilter[] filters;\r\n    }\r\n\r\n    /// Reducting functions currently supported on the Witnet blockchain.\r\n    enum RadonReducerOpcodes {\r\n        /* 0x00 */ Reserved0x00, //Minimum,\r\n        /* 0x01 */ Reserved0x01, //Maximum,\r\n        /* 0x02 */ Mode,\r\n        /* 0x03 */ AverageMean,\r\n        /* 0x04 */ Reserved0x04, //AverageMeanWeighted,\r\n        /* 0x05 */ AverageMedian,\r\n        /* 0x06 */ Reserved0x06, //AverageMedianWeighted,\r\n        /* 0x07 */ StandardDeviation,\r\n        /* 0x08 */ Reserved0x08, //AverageDeviation,\r\n        /* 0x09 */ Reserved0x09, //MedianDeviation,\r\n        /* 0x0A */ Reserved0x10, //MaximumDeviation,\r\n        /* 0x0B */ ConcatenateAndHash\r\n    }\r\n\r\n    /// Structure containing all the parameters that fully describe a Witnet Radon Retrieval within a Witnet Data Request.\r\n    struct RadonRetrieval {\r\n        uint8 argsCount;\r\n        RadonDataRequestMethods method;\r\n        RadonDataTypes resultDataType;\r\n        string url;\r\n        string body;\r\n        string[2][] headers;\r\n        bytes script;\r\n    }\r\n\r\n    /// Structure containing the Retrieve-Attestation-Delivery parts of a Witnet Data Request.\r\n    struct RadonRAD {\r\n        RadonRetrieval[] retrieve;\r\n        RadonReducer aggregate;\r\n        RadonReducer tally;\r\n    }\r\n\r\n    /// Structure containing the Service Level Aggreement parameters of a Witnet Data Request.\r\n    struct RadonSLA {\r\n        uint8 numWitnesses;\r\n        uint8 minConsensusPercentage;\r\n        uint64 witnessReward;\r\n        uint64 witnessCollateral;\r\n        uint64 minerCommitRevealFee;\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- 'uint*' helper methods ------------------------------------------------------------------------------------\r\n\r\n    /// @notice Convert a `uint8` into a 2 characters long `string` representing its two less significant hexadecimal values.\r\n    function toHexString(uint8 _u)\r\n        internal pure\r\n        returns (string memory)\r\n    {\r\n        bytes memory b2 = new bytes(2);\r\n        uint8 d0 = uint8(_u / 16) + 48;\r\n        uint8 d1 = uint8(_u % 16) + 48;\r\n        if (d0 > 57)\r\n            d0 += 7;\r\n        if (d1 > 57)\r\n            d1 += 7;\r\n        b2[0] = bytes1(d0);\r\n        b2[1] = bytes1(d1);\r\n        return string(b2);\r\n    }\r\n\r\n    /// @notice Convert a `uint8` into a 1, 2 or 3 characters long `string` representing its.\r\n    /// three less significant decimal values.\r\n    function toString(uint8 _u)\r\n        internal pure\r\n        returns (string memory)\r\n    {\r\n        if (_u < 10) {\r\n            bytes memory b1 = new bytes(1);\r\n            b1[0] = bytes1(uint8(_u) + 48);\r\n            return string(b1);\r\n        } else if (_u < 100) {\r\n            bytes memory b2 = new bytes(2);\r\n            b2[0] = bytes1(uint8(_u / 10) + 48);\r\n            b2[1] = bytes1(uint8(_u % 10) + 48);\r\n            return string(b2);\r\n        } else {\r\n            bytes memory b3 = new bytes(3);\r\n            b3[0] = bytes1(uint8(_u / 100) + 48);\r\n            b3[1] = bytes1(uint8(_u % 100 / 10) + 48);\r\n            b3[2] = bytes1(uint8(_u % 10) + 48);\r\n            return string(b3);\r\n        }\r\n    }\r\n\r\n    /// @notice Convert a `uint` into a string` representing its value.\r\n    function toString(uint v)\r\n        internal pure \r\n        returns (string memory)\r\n    {\r\n        uint maxlength = 100;\r\n        bytes memory reversed = new bytes(maxlength);\r\n        uint i = 0;\r\n        do {\r\n            uint8 remainder = uint8(v % 10);\r\n            v = v / 10;\r\n            reversed[i ++] = bytes1(48 + remainder);\r\n        } while (v != 0);\r\n        bytes memory buf = new bytes(i);\r\n        for (uint j = 1; j <= i; j ++) {\r\n            buf[j - 1] = reversed[i - j];\r\n        }\r\n        return string(buf);\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- 'bytes' helper methods ------------------------------------------------------------------------------------\r\n\r\n    /// @dev Transform given bytes into a Witnet.Result instance.\r\n    /// @param cborBytes Raw bytes representing a CBOR-encoded value.\r\n    /// @return A `Witnet.Result` instance.\r\n    function toWitnetResult(bytes memory cborBytes)\r\n        internal pure\r\n        returns (Witnet.Result memory)\r\n    {\r\n        WitnetCBOR.CBOR memory cborValue = WitnetCBOR.fromBytes(cborBytes);\r\n        return _resultFromCborValue(cborValue);\r\n    }\r\n\r\n    function toAddress(bytes memory _value) internal pure returns (address) {\r\n        return address(toBytes20(_value));\r\n    }\r\n\r\n    function toBytes4(bytes memory _value) internal pure returns (bytes4) {\r\n        return bytes4(toFixedBytes(_value, 4));\r\n    }\r\n    \r\n    function toBytes20(bytes memory _value) internal pure returns (bytes20) {\r\n        return bytes20(toFixedBytes(_value, 20));\r\n    }\r\n    \r\n    function toBytes32(bytes memory _value) internal pure returns (bytes32) {\r\n        return toFixedBytes(_value, 32);\r\n    }\r\n\r\n    function toFixedBytes(bytes memory _value, uint8 _numBytes)\r\n        internal pure\r\n        returns (bytes32 _bytes32)\r\n    {\r\n        assert(_numBytes <= 32);\r\n        unchecked {\r\n            uint _len = _value.length > _numBytes ? _numBytes : _value.length;\r\n            for (uint _i = 0; _i < _len; _i ++) {\r\n                _bytes32 |= bytes32(_value[_i] & 0xff) >> (_i * 8);\r\n            }\r\n        }\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- 'string' helper methods -----------------------------------------------------------------------------------\r\n\r\n    function toLowerCase(string memory str)\r\n        internal pure\r\n        returns (string memory)\r\n    {\r\n        bytes memory lowered = new bytes(bytes(str).length);\r\n        unchecked {\r\n            for (uint i = 0; i < lowered.length; i ++) {\r\n                uint8 char = uint8(bytes(str)[i]);\r\n                if (char >= 65 && char <= 90) {\r\n                    lowered[i] = bytes1(char + 32);\r\n                } else {\r\n                    lowered[i] = bytes1(char);\r\n                }\r\n            }\r\n        }\r\n        return string(lowered);\r\n    }\r\n\r\n    /// @notice Converts bytes32 into string.\r\n    function toString(bytes32 _bytes32)\r\n        internal pure\r\n        returns (string memory)\r\n    {\r\n        bytes memory _bytes = new bytes(_toStringLength(_bytes32));\r\n        for (uint _i = 0; _i < _bytes.length;) {\r\n            _bytes[_i] = _bytes32[_i];\r\n            unchecked {\r\n                _i ++;\r\n            }\r\n        }\r\n        return string(_bytes);\r\n    }\r\n\r\n    function tryUint(string memory str)\r\n        internal pure\r\n        returns (uint res, bool)\r\n    {\r\n        unchecked {\r\n            for (uint256 i = 0; i < bytes(str).length; i++) {\r\n                if (\r\n                    (uint8(bytes(str)[i]) - 48) < 0\r\n                        || (uint8(bytes(str)[i]) - 48) > 9\r\n                ) {\r\n                    return (0, false);\r\n                }\r\n                res += (uint8(bytes(str)[i]) - 48) * 10 ** (bytes(str).length - i - 1);\r\n            }\r\n            return (res, true);\r\n        }\r\n    }\r\n    \r\n\r\n    /// ===============================================================================================================\r\n    /// --- 'Witnet.Result' helper methods ----------------------------------------------------------------------------\r\n\r\n    modifier _isReady(Result memory result) {\r\n        require(result.success, \"Witnet: tried to decode value from errored result.\");\r\n        _;\r\n    }\r\n\r\n    /// @dev Decode an address from the Witnet.Result's CBOR value.\r\n    function asAddress(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns (address)\r\n    {\r\n        if (result.value.majorType == uint8(WitnetCBOR.MAJOR_TYPE_BYTES)) {\r\n            return toAddress(result.value.readBytes());\r\n        } else {\r\n            // TODO\r\n            revert(\"WitnetLib: reading address from string not yet supported.\");\r\n        }\r\n    }\r\n\r\n    /// @dev Decode a `bool` value from the Witnet.Result's CBOR value.\r\n    function asBool(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns (bool)\r\n    {\r\n        return result.value.readBool();\r\n    }\r\n\r\n    /// @dev Decode a `bytes` value from the Witnet.Result's CBOR value.\r\n    function asBytes(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns(bytes memory)\r\n    {\r\n        return result.value.readBytes();\r\n    }\r\n\r\n    /// @dev Decode a `bytes4` value from the Witnet.Result's CBOR value.\r\n    function asBytes4(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns (bytes4)\r\n    {\r\n        return toBytes4(asBytes(result));\r\n    }\r\n\r\n    /// @dev Decode a `bytes32` value from the Witnet.Result's CBOR value.\r\n    function asBytes32(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns (bytes32)\r\n    {\r\n        return toBytes32(asBytes(result));\r\n    }\r\n\r\n    /// @notice Returns the Witnet.Result's unread CBOR value.\r\n    function asCborValue(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns (WitnetCBOR.CBOR memory)\r\n    {\r\n        return result.value;\r\n    }\r\n\r\n    /// @notice Decode array of CBOR values from the Witnet.Result's CBOR value. \r\n    function asCborArray(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns (WitnetCBOR.CBOR[] memory)\r\n    {\r\n        return result.value.readArray();\r\n    }\r\n\r\n    /// @dev Decode a fixed16 (half-precision) numeric value from the Witnet.Result's CBOR 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    function asFixed16(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns (int32)\r\n    {\r\n        return result.value.readFloat16();\r\n    }\r\n\r\n    /// @dev Decode an array of fixed16 values from the Witnet.Result's CBOR value.\r\n    function asFixed16Array(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns (int32[] memory)\r\n    {\r\n        return result.value.readFloat16Array();\r\n    }\r\n\r\n    /// @dev Decode an `int64` value from the Witnet.Result's CBOR value.\r\n    function asInt(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns (int)\r\n    {\r\n        return result.value.readInt();\r\n    }\r\n\r\n    /// @dev Decode an array of integer numeric values from a Witnet.Result as an `int[]` array.\r\n    /// @param result An instance of Witnet.Result.\r\n    /// @return The `int[]` decoded from the Witnet.Result.\r\n    function asIntArray(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns (int[] memory)\r\n    {\r\n        return result.value.readIntArray();\r\n    }\r\n\r\n    /// @dev Decode a `string` value from the Witnet.Result's CBOR value.\r\n    /// @param result An instance of Witnet.Result.\r\n    /// @return The `string` decoded from the Witnet.Result.\r\n    function asText(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns(string memory)\r\n    {\r\n        return result.value.readString();\r\n    }\r\n\r\n    /// @dev Decode an array of strings from the Witnet.Result's CBOR value.\r\n    /// @param result An instance of Witnet.Result.\r\n    /// @return The `string[]` decoded from the Witnet.Result.\r\n    function asTextArray(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns (string[] memory)\r\n    {\r\n        return result.value.readStringArray();\r\n    }\r\n\r\n    /// @dev Decode a `uint64` value from the Witnet.Result's CBOR value.\r\n    /// @param result An instance of Witnet.Result.\r\n    /// @return The `uint` decoded from the Witnet.Result.\r\n    function asUint(Witnet.Result memory result)\r\n        internal pure\r\n        _isReady(result)\r\n        returns (uint)\r\n    {\r\n        return result.value.readUint();\r\n    }\r\n\r\n    /// @dev Decode an array of `uint64` values from the Witnet.Result's CBOR value.\r\n    /// @param result An instance of Witnet.Result.\r\n    /// @return The `uint[]` decoded from the Witnet.Result.\r\n    function asUintArray(Witnet.Result memory result)\r\n        internal pure\r\n        returns (uint[] memory)\r\n    {\r\n        return result.value.readUintArray();\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- Witnet library private methods ----------------------------------------------------------------------------\r\n\r\n    /// @dev Decode a CBOR value into a Witnet.Result instance.\r\n    function _resultFromCborValue(WitnetCBOR.CBOR memory cbor)\r\n        private pure\r\n        returns (Witnet.Result memory)    \r\n    {\r\n        // Witnet uses CBOR tag 39 to represent RADON error code identifiers.\r\n        // [CBOR tag 39] Identifiers for CBOR: https://github.com/lucas-clemente/cbor-specs/blob/master/id.md\r\n        bool success = cbor.tag != 39;\r\n        return Witnet.Result(success, cbor);\r\n    }\r\n\r\n    /// @dev Calculate length of string-equivalent to given bytes32.\r\n    function _toStringLength(bytes32 _bytes32)\r\n        private pure\r\n        returns (uint _length)\r\n    {\r\n        for (; _length < 32; ) {\r\n            if (_bytes32[_length] == 0) {\r\n                break;\r\n            }\r\n            unchecked {\r\n                _length ++;\r\n            }\r\n        }\r\n    }\r\n}",
  "sourcePath": "C:\\Users\\guill\\github\\witnet\\witnet-solidity-bridge\\contracts\\libs\\Witnet.sol",
  "ast": {
    "absolutePath": "project:/contracts/libs/Witnet.sol",
    "exportedSymbols": {
      "Witnet": [
        17557
      ],
      "WitnetBuffer": [
        19191
      ],
      "WitnetCBOR": [
        20734
      ]
    },
    "id": 17558,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 15982,
        "literals": [
          "solidity",
          ">=",
          "0.7",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:64"
      },
      {
        "id": 15983,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "68:33:64"
      },
      {
        "absolutePath": "project:/contracts/libs/WitnetCBOR.sol",
        "file": "./WitnetCBOR.sol",
        "id": 15984,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 17558,
        "sourceUnit": 20735,
        "src": "105:26:64",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "canonicalName": "Witnet",
        "contractDependencies": [],
        "contractKind": "library",
        "fullyImplemented": true,
        "id": 17557,
        "linearizedBaseContracts": [
          17557
        ],
        "name": "Witnet",
        "nameLocation": "143:6:64",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 15988,
            "libraryName": {
              "id": 15985,
              "name": "WitnetBuffer",
              "nameLocations": [
                "165:12:64"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 19191,
              "src": "165:12:64"
            },
            "nodeType": "UsingForDirective",
            "src": "159:43:64",
            "typeName": {
              "id": 15987,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 15986,
                "name": "WitnetBuffer.Buffer",
                "nameLocations": [
                  "182:12:64",
                  "195:6:64"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 17580,
                "src": "182:19:64"
              },
              "referencedDeclaration": 17580,
              "src": "182:19:64",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Buffer_$17580_storage_ptr",
                "typeString": "struct WitnetBuffer.Buffer"
              }
            }
          },
          {
            "global": false,
            "id": 15992,
            "libraryName": {
              "id": 15989,
              "name": "WitnetCBOR",
              "nameLocations": [
                "214:10:64"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 20734,
              "src": "214:10:64"
            },
            "nodeType": "UsingForDirective",
            "src": "208:37:64",
            "typeName": {
              "id": 15991,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 15990,
                "name": "WitnetCBOR.CBOR",
                "nameLocations": [
                  "229:10:64",
                  "240:4:64"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 19218,
                "src": "229:15:64"
              },
              "referencedDeclaration": 19218,
              "src": "229:15:64",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                "typeString": "struct WitnetCBOR.CBOR"
              }
            }
          },
          {
            "global": false,
            "id": 15997,
            "libraryName": {
              "id": 15993,
              "name": "WitnetCBOR",
              "nameLocations": [
                "257:10:64"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 20734,
              "src": "257:10:64"
            },
            "nodeType": "UsingForDirective",
            "src": "251:39:64",
            "typeName": {
              "baseType": {
                "id": 15995,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 15994,
                  "name": "WitnetCBOR.CBOR",
                  "nameLocations": [
                    "272:10:64",
                    "283:4:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19218,
                  "src": "272:15:64"
                },
                "referencedDeclaration": 19218,
                "src": "272:15:64",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                  "typeString": "struct WitnetCBOR.CBOR"
                }
              },
              "id": 15996,
              "nodeType": "ArrayTypeName",
              "src": "272:17:64",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_storage_$dyn_storage_ptr",
                "typeString": "struct WitnetCBOR.CBOR[]"
              }
            }
          },
          {
            "canonicalName": "Witnet.Query",
            "documentation": {
              "id": 15998,
              "nodeType": "StructuredDocumentation",
              "src": "298:110:64",
              "text": "Struct containing both request and response data related to every query posted to the Witnet Request Board"
            },
            "id": 16007,
            "members": [
              {
                "constant": false,
                "id": 16001,
                "mutability": "mutable",
                "name": "request",
                "nameLocation": "446:7:64",
                "nodeType": "VariableDeclaration",
                "scope": 16007,
                "src": "438:15:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Request_$16025_storage_ptr",
                  "typeString": "struct Witnet.Request"
                },
                "typeName": {
                  "id": 16000,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 15999,
                    "name": "Request",
                    "nameLocations": [
                      "438:7:64"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 16025,
                    "src": "438:7:64"
                  },
                  "referencedDeclaration": 16025,
                  "src": "438:7:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Request_$16025_storage_ptr",
                    "typeString": "struct Witnet.Request"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16004,
                "mutability": "mutable",
                "name": "response",
                "nameLocation": "473:8:64",
                "nodeType": "VariableDeclaration",
                "scope": 16007,
                "src": "464:17:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Response_$16035_storage_ptr",
                  "typeString": "struct Witnet.Response"
                },
                "typeName": {
                  "id": 16003,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 16002,
                    "name": "Response",
                    "nameLocations": [
                      "464:8:64"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 16035,
                    "src": "464:8:64"
                  },
                  "referencedDeclaration": 16035,
                  "src": "464:8:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Response_$16035_storage_ptr",
                    "typeString": "struct Witnet.Response"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16006,
                "mutability": "mutable",
                "name": "from",
                "nameLocation": "500:4:64",
                "nodeType": "VariableDeclaration",
                "scope": 16007,
                "src": "492:12:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 16005,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "492:7:64",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Query",
            "nameLocation": "421:5:64",
            "nodeType": "StructDefinition",
            "scope": 17557,
            "src": "414:149:64",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.QueryStatus",
            "documentation": {
              "id": 16008,
              "nodeType": "StructuredDocumentation",
              "src": "571:38:64",
              "text": "Possible status of a Witnet query."
            },
            "id": 16013,
            "members": [
              {
                "id": 16009,
                "name": "Unknown",
                "nameLocation": "643:7:64",
                "nodeType": "EnumValue",
                "src": "643:7:64"
              },
              {
                "id": 16010,
                "name": "Posted",
                "nameLocation": "661:6:64",
                "nodeType": "EnumValue",
                "src": "661:6:64"
              },
              {
                "id": 16011,
                "name": "Reported",
                "nameLocation": "678:8:64",
                "nodeType": "EnumValue",
                "src": "678:8:64"
              },
              {
                "id": 16012,
                "name": "Deleted",
                "nameLocation": "697:7:64",
                "nodeType": "EnumValue",
                "src": "697:7:64"
              }
            ],
            "name": "QueryStatus",
            "nameLocation": "620:11:64",
            "nodeType": "EnumDefinition",
            "src": "615:96:64"
          },
          {
            "canonicalName": "Witnet.Request",
            "documentation": {
              "id": 16014,
              "nodeType": "StructuredDocumentation",
              "src": "719:82:64",
              "text": "Data kept in EVM-storage for every Request posted to the Witnet Request Board."
            },
            "id": 16025,
            "members": [
              {
                "constant": false,
                "id": 16016,
                "mutability": "mutable",
                "name": "addr",
                "nameLocation": "841:4:64",
                "nodeType": "VariableDeclaration",
                "scope": 16025,
                "src": "833:12:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 16015,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "833:7:64",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16018,
                "mutability": "mutable",
                "name": "slaHash",
                "nameLocation": "970:7:64",
                "nodeType": "VariableDeclaration",
                "scope": 16025,
                "src": "962:15:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 16017,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "962:7:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16020,
                "mutability": "mutable",
                "name": "radHash",
                "nameLocation": "1045:7:64",
                "nodeType": "VariableDeclaration",
                "scope": 16025,
                "src": "1037:15:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 16019,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "1037:7:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16022,
                "mutability": "mutable",
                "name": "gasprice",
                "nameLocation": "1119:8:64",
                "nodeType": "VariableDeclaration",
                "scope": 16025,
                "src": "1111:16:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 16021,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1111:7:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16024,
                "mutability": "mutable",
                "name": "reward",
                "nameLocation": "1215:6:64",
                "nodeType": "VariableDeclaration",
                "scope": 16025,
                "src": "1207:14:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 16023,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1207:7:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Request",
            "nameLocation": "814:7:64",
            "nodeType": "StructDefinition",
            "scope": 17557,
            "src": "807:476:64",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.Response",
            "documentation": {
              "id": 16026,
              "nodeType": "StructuredDocumentation",
              "src": "1291:102:64",
              "text": "Data kept in EVM-storage containing the Witnet-provided response metadata and CBOR-encoded result."
            },
            "id": 16035,
            "members": [
              {
                "constant": false,
                "id": 16028,
                "mutability": "mutable",
                "name": "reporter",
                "nameLocation": "1434:8:64",
                "nodeType": "VariableDeclaration",
                "scope": 16035,
                "src": "1426:16:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 16027,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "1426:7:64",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16030,
                "mutability": "mutable",
                "name": "timestamp",
                "nameLocation": "1514:9:64",
                "nodeType": "VariableDeclaration",
                "scope": 16035,
                "src": "1506:17:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 16029,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1506:7:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16032,
                "mutability": "mutable",
                "name": "drTxHash",
                "nameLocation": "1591:8:64",
                "nodeType": "VariableDeclaration",
                "scope": 16035,
                "src": "1583:16:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 16031,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "1583:7:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16034,
                "mutability": "mutable",
                "name": "cborBytes",
                "nameLocation": "1696:9:64",
                "nodeType": "VariableDeclaration",
                "scope": 16035,
                "src": "1688:17:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 16033,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "1688:5:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Response",
            "nameLocation": "1406:8:64",
            "nodeType": "StructDefinition",
            "scope": 17557,
            "src": "1399:385:64",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.Result",
            "documentation": {
              "id": 16036,
              "nodeType": "StructuredDocumentation",
              "src": "1792:72:64",
              "text": "Data struct containing the Witnet-provided result to a Data Request."
            },
            "id": 16042,
            "members": [
              {
                "constant": false,
                "id": 16038,
                "mutability": "mutable",
                "name": "success",
                "nameLocation": "1900:7:64",
                "nodeType": "VariableDeclaration",
                "scope": 16042,
                "src": "1895:12:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 16037,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "1895:4:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16041,
                "mutability": "mutable",
                "name": "value",
                "nameLocation": "2019:5:64",
                "nodeType": "VariableDeclaration",
                "scope": 16042,
                "src": "2003:21:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                  "typeString": "struct WitnetCBOR.CBOR"
                },
                "typeName": {
                  "id": 16040,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 16039,
                    "name": "WitnetCBOR.CBOR",
                    "nameLocations": [
                      "2003:10:64",
                      "2014:4:64"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 19218,
                    "src": "2003:15:64"
                  },
                  "referencedDeclaration": 19218,
                  "src": "2003:15:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Result",
            "nameLocation": "1877:6:64",
            "nodeType": "StructDefinition",
            "scope": 17557,
            "src": "1870:209:64",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.ResultStatus",
            "documentation": {
              "id": 16043,
              "nodeType": "StructuredDocumentation",
              "src": "2087:65:64",
              "text": "Final query's result status from a requester's point of view."
            },
            "id": 16048,
            "members": [
              {
                "id": 16044,
                "name": "Void",
                "nameLocation": "2187:4:64",
                "nodeType": "EnumValue",
                "src": "2187:4:64"
              },
              {
                "id": 16045,
                "name": "Awaiting",
                "nameLocation": "2202:8:64",
                "nodeType": "EnumValue",
                "src": "2202:8:64"
              },
              {
                "id": 16046,
                "name": "Ready",
                "nameLocation": "2221:5:64",
                "nodeType": "EnumValue",
                "src": "2221:5:64"
              },
              {
                "id": 16047,
                "name": "Error",
                "nameLocation": "2237:5:64",
                "nodeType": "EnumValue",
                "src": "2237:5:64"
              }
            ],
            "name": "ResultStatus",
            "nameLocation": "2163:12:64",
            "nodeType": "EnumDefinition",
            "src": "2158:91:64"
          },
          {
            "canonicalName": "Witnet.ResultError",
            "documentation": {
              "id": 16049,
              "nodeType": "StructuredDocumentation",
              "src": "2257:100:64",
              "text": "Data struct describing an error when trying to fetch a Witnet-provided result to a Data Request."
            },
            "id": 16055,
            "members": [
              {
                "constant": false,
                "id": 16052,
                "mutability": "mutable",
                "name": "code",
                "nameLocation": "2410:4:64",
                "nodeType": "VariableDeclaration",
                "scope": 16055,
                "src": "2393:21:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                  "typeString": "enum Witnet.ResultErrorCodes"
                },
                "typeName": {
                  "id": 16051,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 16050,
                    "name": "ResultErrorCodes",
                    "nameLocations": [
                      "2393:16:64"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 16311,
                    "src": "2393:16:64"
                  },
                  "referencedDeclaration": 16311,
                  "src": "2393:16:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                    "typeString": "enum Witnet.ResultErrorCodes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16054,
                "mutability": "mutable",
                "name": "reason",
                "nameLocation": "2432:6:64",
                "nodeType": "VariableDeclaration",
                "scope": 16055,
                "src": "2425:13:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 16053,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "2425:6:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "ResultError",
            "nameLocation": "2370:11:64",
            "nodeType": "StructDefinition",
            "scope": 17557,
            "src": "2363:83:64",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.ResultErrorCodes",
            "id": 16311,
            "members": [
              {
                "id": 16056,
                "name": "Unknown",
                "nameLocation": "2548:7:64",
                "nodeType": "EnumValue",
                "src": "2548:7:64"
              },
              {
                "id": 16057,
                "name": "SourceScriptNotCBOR",
                "nameLocation": "2924:19:64",
                "nodeType": "EnumValue",
                "src": "2924:19:64"
              },
              {
                "id": 16058,
                "name": "SourceScriptNotArray",
                "nameLocation": "3035:20:64",
                "nodeType": "EnumValue",
                "src": "3035:20:64"
              },
              {
                "id": 16059,
                "name": "SourceScriptNotRADON",
                "nameLocation": "3159:20:64",
                "nodeType": "EnumValue",
                "src": "3159:20:64"
              },
              {
                "id": 16060,
                "name": "SourceRequestBody",
                "nameLocation": "3281:17:64",
                "nodeType": "EnumValue",
                "src": "3281:17:64"
              },
              {
                "id": 16061,
                "name": "SourceRequestHeaders",
                "nameLocation": "3403:20:64",
                "nodeType": "EnumValue",
                "src": "3403:20:64"
              },
              {
                "id": 16062,
                "name": "SourceRequestURL",
                "nameLocation": "3524:16:64",
                "nodeType": "EnumValue",
                "src": "3524:16:64"
              },
              {
                "id": 16063,
                "name": "SourceFormat0x07",
                "nameLocation": "3576:16:64",
                "nodeType": "EnumValue",
                "src": "3576:16:64"
              },
              {
                "id": 16064,
                "name": "SourceFormat0x08",
                "nameLocation": "3594:16:64",
                "nodeType": "EnumValue",
                "src": "3594:16:64"
              },
              {
                "id": 16065,
                "name": "SourceFormat0x09",
                "nameLocation": "3612:16:64",
                "nodeType": "EnumValue",
                "src": "3612:16:64"
              },
              {
                "id": 16066,
                "name": "SourceFormat0x0A",
                "nameLocation": "3630:16:64",
                "nodeType": "EnumValue",
                "src": "3630:16:64"
              },
              {
                "id": 16067,
                "name": "SourceFormat0x0B",
                "nameLocation": "3648:16:64",
                "nodeType": "EnumValue",
                "src": "3648:16:64"
              },
              {
                "id": 16068,
                "name": "SourceFormat0x0C",
                "nameLocation": "3666:16:64",
                "nodeType": "EnumValue",
                "src": "3666:16:64"
              },
              {
                "id": 16069,
                "name": "SourceFormat0x0D",
                "nameLocation": "3693:16:64",
                "nodeType": "EnumValue",
                "src": "3693:16:64"
              },
              {
                "id": 16070,
                "name": "SourceFormat0x0E",
                "nameLocation": "3711:16:64",
                "nodeType": "EnumValue",
                "src": "3711:16:64"
              },
              {
                "id": 16071,
                "name": "SourceFormat0x0F",
                "nameLocation": "3729:16:64",
                "nodeType": "EnumValue",
                "src": "3729:16:64"
              },
              {
                "id": 16072,
                "name": "RequestTooManySources",
                "nameLocation": "4083:21:64",
                "nodeType": "EnumValue",
                "src": "4083:21:64"
              },
              {
                "id": 16073,
                "name": "ScriptTooManyCalls",
                "nameLocation": "4170:18:64",
                "nodeType": "EnumValue",
                "src": "4170:18:64"
              },
              {
                "id": 16074,
                "name": "Complexity0x12",
                "nameLocation": "4224:14:64",
                "nodeType": "EnumValue",
                "src": "4224:14:64"
              },
              {
                "id": 16075,
                "name": "Complexity0x13",
                "nameLocation": "4240:14:64",
                "nodeType": "EnumValue",
                "src": "4240:14:64"
              },
              {
                "id": 16076,
                "name": "Complexity0x14",
                "nameLocation": "4256:14:64",
                "nodeType": "EnumValue",
                "src": "4256:14:64"
              },
              {
                "id": 16077,
                "name": "Complexity0x15",
                "nameLocation": "4272:14:64",
                "nodeType": "EnumValue",
                "src": "4272:14:64"
              },
              {
                "id": 16078,
                "name": "Complexity0x16",
                "nameLocation": "4288:14:64",
                "nodeType": "EnumValue",
                "src": "4288:14:64"
              },
              {
                "id": 16079,
                "name": "Complexity0x17",
                "nameLocation": "4304:14:64",
                "nodeType": "EnumValue",
                "src": "4304:14:64"
              },
              {
                "id": 16080,
                "name": "Complexity0x18",
                "nameLocation": "4320:14:64",
                "nodeType": "EnumValue",
                "src": "4320:14:64"
              },
              {
                "id": 16081,
                "name": "Complexity0x19",
                "nameLocation": "4345:14:64",
                "nodeType": "EnumValue",
                "src": "4345:14:64"
              },
              {
                "id": 16082,
                "name": "Complexity0x1A",
                "nameLocation": "4361:14:64",
                "nodeType": "EnumValue",
                "src": "4361:14:64"
              },
              {
                "id": 16083,
                "name": "Complexity0x1B",
                "nameLocation": "4377:14:64",
                "nodeType": "EnumValue",
                "src": "4377:14:64"
              },
              {
                "id": 16084,
                "name": "Complexity0x1C",
                "nameLocation": "4393:14:64",
                "nodeType": "EnumValue",
                "src": "4393:14:64"
              },
              {
                "id": 16085,
                "name": "Complexity0x1D",
                "nameLocation": "4409:14:64",
                "nodeType": "EnumValue",
                "src": "4409:14:64"
              },
              {
                "id": 16086,
                "name": "Complexity0x1E",
                "nameLocation": "4425:14:64",
                "nodeType": "EnumValue",
                "src": "4425:14:64"
              },
              {
                "id": 16087,
                "name": "Complexity0x1F",
                "nameLocation": "4441:14:64",
                "nodeType": "EnumValue",
                "src": "4441:14:64"
              },
              {
                "id": 16088,
                "name": "UnsupportedOperator",
                "nameLocation": "4813:19:64",
                "nodeType": "EnumValue",
                "src": "4813:19:64"
              },
              {
                "id": 16089,
                "name": "UnsupportedFilter",
                "nameLocation": "4925:17:64",
                "nodeType": "EnumValue",
                "src": "4925:17:64"
              },
              {
                "id": 16090,
                "name": "UnsupportedHashFunction",
                "nameLocation": "5034:23:64",
                "nodeType": "EnumValue",
                "src": "5034:23:64"
              },
              {
                "id": 16091,
                "name": "UnsupportedReducer",
                "nameLocation": "5150:18:64",
                "nodeType": "EnumValue",
                "src": "5150:18:64"
              },
              {
                "id": 16092,
                "name": "UnsupportedRequestType",
                "nameLocation": "5261:22:64",
                "nodeType": "EnumValue",
                "src": "5261:22:64"
              },
              {
                "id": 16093,
                "name": "UnsupportedEncodingFunction",
                "nameLocation": "5381:27:64",
                "nodeType": "EnumValue",
                "src": "5381:27:64"
              },
              {
                "id": 16094,
                "name": "Operator0x26",
                "nameLocation": "5444:12:64",
                "nodeType": "EnumValue",
                "src": "5444:12:64"
              },
              {
                "id": 16095,
                "name": "Operator0x27",
                "nameLocation": "5458:12:64",
                "nodeType": "EnumValue",
                "src": "5458:12:64"
              },
              {
                "id": 16096,
                "name": "WrongArguments",
                "nameLocation": "5573:14:64",
                "nodeType": "EnumValue",
                "src": "5573:14:64"
              },
              {
                "id": 16097,
                "name": "Operator0x29",
                "nameLocation": "5623:12:64",
                "nodeType": "EnumValue",
                "src": "5623:12:64"
              },
              {
                "id": 16098,
                "name": "Operator0x2A",
                "nameLocation": "5637:12:64",
                "nodeType": "EnumValue",
                "src": "5637:12:64"
              },
              {
                "id": 16099,
                "name": "Operator0x2B",
                "nameLocation": "5651:12:64",
                "nodeType": "EnumValue",
                "src": "5651:12:64"
              },
              {
                "id": 16100,
                "name": "Operator0x2C",
                "nameLocation": "5665:12:64",
                "nodeType": "EnumValue",
                "src": "5665:12:64"
              },
              {
                "id": 16101,
                "name": "Operator0x2D",
                "nameLocation": "5679:12:64",
                "nodeType": "EnumValue",
                "src": "5679:12:64"
              },
              {
                "id": 16102,
                "name": "Operator0x2E",
                "nameLocation": "5693:12:64",
                "nodeType": "EnumValue",
                "src": "5693:12:64"
              },
              {
                "id": 16103,
                "name": "Operator0x2F",
                "nameLocation": "5707:12:64",
                "nodeType": "EnumValue",
                "src": "5707:12:64"
              },
              {
                "id": 16104,
                "name": "HttpErrors",
                "nameLocation": "6113:10:64",
                "nodeType": "EnumValue",
                "src": "6113:10:64"
              },
              {
                "id": 16105,
                "name": "RetrievalsTimeout",
                "nameLocation": "6191:17:64",
                "nodeType": "EnumValue",
                "src": "6191:17:64"
              },
              {
                "id": 16106,
                "name": "RetrieveCircumstance0x32",
                "nameLocation": "6244:24:64",
                "nodeType": "EnumValue",
                "src": "6244:24:64"
              },
              {
                "id": 16107,
                "name": "RetrieveCircumstance0x33",
                "nameLocation": "6270:24:64",
                "nodeType": "EnumValue",
                "src": "6270:24:64"
              },
              {
                "id": 16108,
                "name": "RetrieveCircumstance0x34",
                "nameLocation": "6296:24:64",
                "nodeType": "EnumValue",
                "src": "6296:24:64"
              },
              {
                "id": 16109,
                "name": "RetrieveCircumstance0x35",
                "nameLocation": "6322:24:64",
                "nodeType": "EnumValue",
                "src": "6322:24:64"
              },
              {
                "id": 16110,
                "name": "RetrieveCircumstance0x36",
                "nameLocation": "6357:24:64",
                "nodeType": "EnumValue",
                "src": "6357:24:64"
              },
              {
                "id": 16111,
                "name": "RetrieveCircumstance0x37",
                "nameLocation": "6383:24:64",
                "nodeType": "EnumValue",
                "src": "6383:24:64"
              },
              {
                "id": 16112,
                "name": "RetrieveCircumstance0x38",
                "nameLocation": "6409:24:64",
                "nodeType": "EnumValue",
                "src": "6409:24:64"
              },
              {
                "id": 16113,
                "name": "RetrieveCircumstance0x39",
                "nameLocation": "6435:24:64",
                "nodeType": "EnumValue",
                "src": "6435:24:64"
              },
              {
                "id": 16114,
                "name": "RetrieveCircumstance0x3A",
                "nameLocation": "6470:24:64",
                "nodeType": "EnumValue",
                "src": "6470:24:64"
              },
              {
                "id": 16115,
                "name": "RetrieveCircumstance0x3B",
                "nameLocation": "6496:24:64",
                "nodeType": "EnumValue",
                "src": "6496:24:64"
              },
              {
                "id": 16116,
                "name": "RetrieveCircumstance0x3C",
                "nameLocation": "6522:24:64",
                "nodeType": "EnumValue",
                "src": "6522:24:64"
              },
              {
                "id": 16117,
                "name": "RetrieveCircumstance0x3D",
                "nameLocation": "6548:24:64",
                "nodeType": "EnumValue",
                "src": "6548:24:64"
              },
              {
                "id": 16118,
                "name": "RetrieveCircumstance0x3E",
                "nameLocation": "6583:24:64",
                "nodeType": "EnumValue",
                "src": "6583:24:64"
              },
              {
                "id": 16119,
                "name": "RetrieveCircumstance0x3F",
                "nameLocation": "6609:24:64",
                "nodeType": "EnumValue",
                "src": "6609:24:64"
              },
              {
                "id": 16120,
                "name": "MathUnderflow",
                "nameLocation": "6966:13:64",
                "nodeType": "EnumValue",
                "src": "6966:13:64"
              },
              {
                "id": 16121,
                "name": "MathOverflow",
                "nameLocation": "7043:12:64",
                "nodeType": "EnumValue",
                "src": "7043:12:64"
              },
              {
                "id": 16122,
                "name": "MathDivisionByZero",
                "nameLocation": "7124:18:64",
                "nodeType": "EnumValue",
                "src": "7124:18:64"
              },
              {
                "id": 16123,
                "name": "WrongSubscriptInput",
                "nameLocation": "7214:19:64",
                "nodeType": "EnumValue",
                "src": "7214:19:64"
              },
              {
                "id": 16124,
                "name": "BufferIsNotValue",
                "nameLocation": "7315:16:64",
                "nodeType": "EnumValue",
                "src": "7315:16:64"
              },
              {
                "id": 16125,
                "name": "Decode",
                "nameLocation": "7405:6:64",
                "nodeType": "EnumValue",
                "src": "7405:6:64"
              },
              {
                "id": 16126,
                "name": "EmptyArray",
                "nameLocation": "7465:10:64",
                "nodeType": "EnumValue",
                "src": "7465:10:64"
              },
              {
                "id": 16127,
                "name": "Encode",
                "nameLocation": "7547:6:64",
                "nodeType": "EnumValue",
                "src": "7547:6:64"
              },
              {
                "id": 16128,
                "name": "Filter",
                "nameLocation": "7624:6:64",
                "nodeType": "EnumValue",
                "src": "7624:6:64"
              },
              {
                "id": 16129,
                "name": "Hash",
                "nameLocation": "7688:4:64",
                "nodeType": "EnumValue",
                "src": "7688:4:64"
              },
              {
                "id": 16130,
                "name": "MismatchingArrays",
                "nameLocation": "7747:17:64",
                "nodeType": "EnumValue",
                "src": "7747:17:64"
              },
              {
                "id": 16131,
                "name": "NonHomegeneousArray",
                "nameLocation": "7834:19:64",
                "nodeType": "EnumValue",
                "src": "7834:19:64"
              },
              {
                "id": 16132,
                "name": "Parse",
                "nameLocation": "7940:5:64",
                "nodeType": "EnumValue",
                "src": "7940:5:64"
              },
              {
                "id": 16133,
                "name": "ParseOverflow",
                "nameLocation": "8011:13:64",
                "nodeType": "EnumValue",
                "src": "8011:13:64"
              },
              {
                "id": 16134,
                "name": "ScriptError0x4F",
                "nameLocation": "8066:15:64",
                "nodeType": "EnumValue",
                "src": "8066:15:64"
              },
              {
                "id": 16135,
                "name": "InsufficientReveals",
                "nameLocation": "8421:19:64",
                "nodeType": "EnumValue",
                "src": "8421:19:64"
              },
              {
                "id": 16136,
                "name": "InsufficientMajority",
                "nameLocation": "8524:20:64",
                "nodeType": "EnumValue",
                "src": "8524:20:64"
              },
              {
                "id": 16137,
                "name": "InsufficientCommits",
                "nameLocation": "8627:19:64",
                "nodeType": "EnumValue",
                "src": "8627:19:64"
              },
              {
                "id": 16138,
                "name": "TallyExecution",
                "nameLocation": "8748:14:64",
                "nodeType": "EnumValue",
                "src": "8748:14:64"
              },
              {
                "id": 16139,
                "name": "CircumstantialFailure",
                "nameLocation": "8901:21:64",
                "nodeType": "EnumValue",
                "src": "8901:21:64"
              },
              {
                "id": 16140,
                "name": "InconsistentSources",
                "nameLocation": "9043:19:64",
                "nodeType": "EnumValue",
                "src": "9043:19:64"
              },
              {
                "id": 16141,
                "name": "MalformedDataRequest",
                "nameLocation": "9176:20:64",
                "nodeType": "EnumValue",
                "src": "9176:20:64"
              },
              {
                "id": 16142,
                "name": "MalformedResponses",
                "nameLocation": "9307:18:64",
                "nodeType": "EnumValue",
                "src": "9307:18:64"
              },
              {
                "id": 16143,
                "name": "OtherError0x58",
                "nameLocation": "9366:14:64",
                "nodeType": "EnumValue",
                "src": "9366:14:64"
              },
              {
                "id": 16144,
                "name": "OtherError0x59",
                "nameLocation": "9382:14:64",
                "nodeType": "EnumValue",
                "src": "9382:14:64"
              },
              {
                "id": 16145,
                "name": "OtherError0x5A",
                "nameLocation": "9398:14:64",
                "nodeType": "EnumValue",
                "src": "9398:14:64"
              },
              {
                "id": 16146,
                "name": "OtherError0x5B",
                "nameLocation": "9414:14:64",
                "nodeType": "EnumValue",
                "src": "9414:14:64"
              },
              {
                "id": 16147,
                "name": "OtherError0x5C",
                "nameLocation": "9430:14:64",
                "nodeType": "EnumValue",
                "src": "9430:14:64"
              },
              {
                "id": 16148,
                "name": "OtherError0x5D",
                "nameLocation": "9446:14:64",
                "nodeType": "EnumValue",
                "src": "9446:14:64"
              },
              {
                "id": 16149,
                "name": "OtherError0x5E",
                "nameLocation": "9462:14:64",
                "nodeType": "EnumValue",
                "src": "9462:14:64"
              },
              {
                "id": 16150,
                "name": "OversizedTallyResult",
                "nameLocation": "9558:20:64",
                "nodeType": "EnumValue",
                "src": "9558:20:64"
              },
              {
                "id": 16151,
                "name": "MalformedReveals",
                "nameLocation": "9935:16:64",
                "nodeType": "EnumValue",
                "src": "9935:16:64"
              },
              {
                "id": 16152,
                "name": "EncodeReveals",
                "nameLocation": "10035:13:64",
                "nodeType": "EnumValue",
                "src": "10035:13:64"
              },
              {
                "id": 16153,
                "name": "ModeTie",
                "nameLocation": "10171:7:64",
                "nodeType": "EnumValue",
                "src": "10171:7:64"
              },
              {
                "id": 16154,
                "name": "OtherError0x63",
                "nameLocation": "10216:14:64",
                "nodeType": "EnumValue",
                "src": "10216:14:64"
              },
              {
                "id": 16155,
                "name": "OtherError0x64",
                "nameLocation": "10232:14:64",
                "nodeType": "EnumValue",
                "src": "10232:14:64"
              },
              {
                "id": 16156,
                "name": "OtherError0x65",
                "nameLocation": "10248:14:64",
                "nodeType": "EnumValue",
                "src": "10248:14:64"
              },
              {
                "id": 16157,
                "name": "OtherError0x66",
                "nameLocation": "10264:14:64",
                "nodeType": "EnumValue",
                "src": "10264:14:64"
              },
              {
                "id": 16158,
                "name": "OtherError0x67",
                "nameLocation": "10280:14:64",
                "nodeType": "EnumValue",
                "src": "10280:14:64"
              },
              {
                "id": 16159,
                "name": "OtherError0x68",
                "nameLocation": "10296:14:64",
                "nodeType": "EnumValue",
                "src": "10296:14:64"
              },
              {
                "id": 16160,
                "name": "OtherError0x69",
                "nameLocation": "10312:14:64",
                "nodeType": "EnumValue",
                "src": "10312:14:64"
              },
              {
                "id": 16161,
                "name": "OtherError0x6A",
                "nameLocation": "10338:14:64",
                "nodeType": "EnumValue",
                "src": "10338:14:64"
              },
              {
                "id": 16162,
                "name": "OtherError0x6B",
                "nameLocation": "10354:14:64",
                "nodeType": "EnumValue",
                "src": "10354:14:64"
              },
              {
                "id": 16163,
                "name": "OtherError0x6C",
                "nameLocation": "10370:14:64",
                "nodeType": "EnumValue",
                "src": "10370:14:64"
              },
              {
                "id": 16164,
                "name": "OtherError0x6D",
                "nameLocation": "10386:14:64",
                "nodeType": "EnumValue",
                "src": "10386:14:64"
              },
              {
                "id": 16165,
                "name": "OtherError0x6E",
                "nameLocation": "10402:14:64",
                "nodeType": "EnumValue",
                "src": "10402:14:64"
              },
              {
                "id": 16166,
                "name": "OtherError0x6F",
                "nameLocation": "10418:14:64",
                "nodeType": "EnumValue",
                "src": "10418:14:64"
              },
              {
                "id": 16167,
                "name": "ArrayIndexOutOfBounds",
                "nameLocation": "10816:21:64",
                "nodeType": "EnumValue",
                "src": "10816:21:64"
              },
              {
                "id": 16168,
                "name": "MapKeyNotFound",
                "nameLocation": "10945:14:64",
                "nodeType": "EnumValue",
                "src": "10945:14:64"
              },
              {
                "id": 16169,
                "name": "JsonPathNotFound",
                "nameLocation": "11075:16:64",
                "nodeType": "EnumValue",
                "src": "11075:16:64"
              },
              {
                "id": 16170,
                "name": "OtherError0x73",
                "nameLocation": "11128:14:64",
                "nodeType": "EnumValue",
                "src": "11128:14:64"
              },
              {
                "id": 16171,
                "name": "OtherError0x74",
                "nameLocation": "11144:14:64",
                "nodeType": "EnumValue",
                "src": "11144:14:64"
              },
              {
                "id": 16172,
                "name": "OtherError0x75",
                "nameLocation": "11160:14:64",
                "nodeType": "EnumValue",
                "src": "11160:14:64"
              },
              {
                "id": 16173,
                "name": "OtherError0x76",
                "nameLocation": "11176:14:64",
                "nodeType": "EnumValue",
                "src": "11176:14:64"
              },
              {
                "id": 16174,
                "name": "OtherError0x77",
                "nameLocation": "11192:14:64",
                "nodeType": "EnumValue",
                "src": "11192:14:64"
              },
              {
                "id": 16175,
                "name": "OtherError0x78",
                "nameLocation": "11208:14:64",
                "nodeType": "EnumValue",
                "src": "11208:14:64"
              },
              {
                "id": 16176,
                "name": "OtherError0x79",
                "nameLocation": "11234:14:64",
                "nodeType": "EnumValue",
                "src": "11234:14:64"
              },
              {
                "id": 16177,
                "name": "OtherError0x7A",
                "nameLocation": "11250:14:64",
                "nodeType": "EnumValue",
                "src": "11250:14:64"
              },
              {
                "id": 16178,
                "name": "OtherError0x7B",
                "nameLocation": "11266:14:64",
                "nodeType": "EnumValue",
                "src": "11266:14:64"
              },
              {
                "id": 16179,
                "name": "OtherError0x7C",
                "nameLocation": "11282:14:64",
                "nodeType": "EnumValue",
                "src": "11282:14:64"
              },
              {
                "id": 16180,
                "name": "OtherError0x7D",
                "nameLocation": "11298:14:64",
                "nodeType": "EnumValue",
                "src": "11298:14:64"
              },
              {
                "id": 16181,
                "name": "OtherError0x7E",
                "nameLocation": "11314:14:64",
                "nodeType": "EnumValue",
                "src": "11314:14:64"
              },
              {
                "id": 16182,
                "name": "OtherError0x7F",
                "nameLocation": "11330:14:64",
                "nodeType": "EnumValue",
                "src": "11330:14:64"
              },
              {
                "id": 16183,
                "name": "OtherError0x80",
                "nameLocation": "11356:14:64",
                "nodeType": "EnumValue",
                "src": "11356:14:64"
              },
              {
                "id": 16184,
                "name": "OtherError0x81",
                "nameLocation": "11372:14:64",
                "nodeType": "EnumValue",
                "src": "11372:14:64"
              },
              {
                "id": 16185,
                "name": "OtherError0x82",
                "nameLocation": "11388:14:64",
                "nodeType": "EnumValue",
                "src": "11388:14:64"
              },
              {
                "id": 16186,
                "name": "OtherError0x83",
                "nameLocation": "11404:14:64",
                "nodeType": "EnumValue",
                "src": "11404:14:64"
              },
              {
                "id": 16187,
                "name": "OtherError0x84",
                "nameLocation": "11420:14:64",
                "nodeType": "EnumValue",
                "src": "11420:14:64"
              },
              {
                "id": 16188,
                "name": "OtherError0x85",
                "nameLocation": "11436:14:64",
                "nodeType": "EnumValue",
                "src": "11436:14:64"
              },
              {
                "id": 16189,
                "name": "OtherError0x86",
                "nameLocation": "11452:14:64",
                "nodeType": "EnumValue",
                "src": "11452:14:64"
              },
              {
                "id": 16190,
                "name": "OtherError0x87",
                "nameLocation": "11478:14:64",
                "nodeType": "EnumValue",
                "src": "11478:14:64"
              },
              {
                "id": 16191,
                "name": "OtherError0x88",
                "nameLocation": "11494:14:64",
                "nodeType": "EnumValue",
                "src": "11494:14:64"
              },
              {
                "id": 16192,
                "name": "OtherError0x89",
                "nameLocation": "11510:14:64",
                "nodeType": "EnumValue",
                "src": "11510:14:64"
              },
              {
                "id": 16193,
                "name": "OtherError0x8A",
                "nameLocation": "11526:14:64",
                "nodeType": "EnumValue",
                "src": "11526:14:64"
              },
              {
                "id": 16194,
                "name": "OtherError0x8B",
                "nameLocation": "11542:14:64",
                "nodeType": "EnumValue",
                "src": "11542:14:64"
              },
              {
                "id": 16195,
                "name": "OtherError0x8C",
                "nameLocation": "11558:14:64",
                "nodeType": "EnumValue",
                "src": "11558:14:64"
              },
              {
                "id": 16196,
                "name": "OtherError0x8D",
                "nameLocation": "11574:14:64",
                "nodeType": "EnumValue",
                "src": "11574:14:64"
              },
              {
                "id": 16197,
                "name": "OtherError0x8E",
                "nameLocation": "11600:14:64",
                "nodeType": "EnumValue",
                "src": "11600:14:64"
              },
              {
                "id": 16198,
                "name": "OtherError0x8F",
                "nameLocation": "11616:14:64",
                "nodeType": "EnumValue",
                "src": "11616:14:64"
              },
              {
                "id": 16199,
                "name": "OtherError0x90",
                "nameLocation": "11632:14:64",
                "nodeType": "EnumValue",
                "src": "11632:14:64"
              },
              {
                "id": 16200,
                "name": "OtherError0x91",
                "nameLocation": "11648:14:64",
                "nodeType": "EnumValue",
                "src": "11648:14:64"
              },
              {
                "id": 16201,
                "name": "OtherError0x92",
                "nameLocation": "11664:14:64",
                "nodeType": "EnumValue",
                "src": "11664:14:64"
              },
              {
                "id": 16202,
                "name": "OtherError0x93",
                "nameLocation": "11680:14:64",
                "nodeType": "EnumValue",
                "src": "11680:14:64"
              },
              {
                "id": 16203,
                "name": "OtherError0x94",
                "nameLocation": "11696:14:64",
                "nodeType": "EnumValue",
                "src": "11696:14:64"
              },
              {
                "id": 16204,
                "name": "OtherError0x95",
                "nameLocation": "11722:14:64",
                "nodeType": "EnumValue",
                "src": "11722:14:64"
              },
              {
                "id": 16205,
                "name": "OtherError0x96",
                "nameLocation": "11738:14:64",
                "nodeType": "EnumValue",
                "src": "11738:14:64"
              },
              {
                "id": 16206,
                "name": "OtherError0x97",
                "nameLocation": "11754:14:64",
                "nodeType": "EnumValue",
                "src": "11754:14:64"
              },
              {
                "id": 16207,
                "name": "OtherError0x98",
                "nameLocation": "11770:14:64",
                "nodeType": "EnumValue",
                "src": "11770:14:64"
              },
              {
                "id": 16208,
                "name": "OtherError0x99",
                "nameLocation": "11786:14:64",
                "nodeType": "EnumValue",
                "src": "11786:14:64"
              },
              {
                "id": 16209,
                "name": "OtherError0x9A",
                "nameLocation": "11802:14:64",
                "nodeType": "EnumValue",
                "src": "11802:14:64"
              },
              {
                "id": 16210,
                "name": "OtherError0x9B",
                "nameLocation": "11818:14:64",
                "nodeType": "EnumValue",
                "src": "11818:14:64"
              },
              {
                "id": 16211,
                "name": "OtherError0x9C",
                "nameLocation": "11843:14:64",
                "nodeType": "EnumValue",
                "src": "11843:14:64"
              },
              {
                "id": 16212,
                "name": "OtherError0x9D",
                "nameLocation": "11859:14:64",
                "nodeType": "EnumValue",
                "src": "11859:14:64"
              },
              {
                "id": 16213,
                "name": "OtherError0x9E",
                "nameLocation": "11875:14:64",
                "nodeType": "EnumValue",
                "src": "11875:14:64"
              },
              {
                "id": 16214,
                "name": "OtherError0x9F",
                "nameLocation": "11891:14:64",
                "nodeType": "EnumValue",
                "src": "11891:14:64"
              },
              {
                "id": 16215,
                "name": "OtherError0xA0",
                "nameLocation": "11907:14:64",
                "nodeType": "EnumValue",
                "src": "11907:14:64"
              },
              {
                "id": 16216,
                "name": "OtherError0xA1",
                "nameLocation": "11923:14:64",
                "nodeType": "EnumValue",
                "src": "11923:14:64"
              },
              {
                "id": 16217,
                "name": "OtherError0xA2",
                "nameLocation": "11939:14:64",
                "nodeType": "EnumValue",
                "src": "11939:14:64"
              },
              {
                "id": 16218,
                "name": "OtherError0xA3",
                "nameLocation": "11965:14:64",
                "nodeType": "EnumValue",
                "src": "11965:14:64"
              },
              {
                "id": 16219,
                "name": "OtherError0xA4",
                "nameLocation": "11981:14:64",
                "nodeType": "EnumValue",
                "src": "11981:14:64"
              },
              {
                "id": 16220,
                "name": "OtherError0xA5",
                "nameLocation": "11997:14:64",
                "nodeType": "EnumValue",
                "src": "11997:14:64"
              },
              {
                "id": 16221,
                "name": "OtherError0xA6",
                "nameLocation": "12013:14:64",
                "nodeType": "EnumValue",
                "src": "12013:14:64"
              },
              {
                "id": 16222,
                "name": "OtherError0xA7",
                "nameLocation": "12029:14:64",
                "nodeType": "EnumValue",
                "src": "12029:14:64"
              },
              {
                "id": 16223,
                "name": "OtherError0xA8",
                "nameLocation": "12045:14:64",
                "nodeType": "EnumValue",
                "src": "12045:14:64"
              },
              {
                "id": 16224,
                "name": "OtherError0xA9",
                "nameLocation": "12061:14:64",
                "nodeType": "EnumValue",
                "src": "12061:14:64"
              },
              {
                "id": 16225,
                "name": "OtherError0xAA",
                "nameLocation": "12087:14:64",
                "nodeType": "EnumValue",
                "src": "12087:14:64"
              },
              {
                "id": 16226,
                "name": "OtherError0xAB",
                "nameLocation": "12103:14:64",
                "nodeType": "EnumValue",
                "src": "12103:14:64"
              },
              {
                "id": 16227,
                "name": "OtherError0xAC",
                "nameLocation": "12119:14:64",
                "nodeType": "EnumValue",
                "src": "12119:14:64"
              },
              {
                "id": 16228,
                "name": "OtherError0xAD",
                "nameLocation": "12135:14:64",
                "nodeType": "EnumValue",
                "src": "12135:14:64"
              },
              {
                "id": 16229,
                "name": "OtherError0xAE",
                "nameLocation": "12151:14:64",
                "nodeType": "EnumValue",
                "src": "12151:14:64"
              },
              {
                "id": 16230,
                "name": "OtherError0xAF",
                "nameLocation": "12167:14:64",
                "nodeType": "EnumValue",
                "src": "12167:14:64"
              },
              {
                "id": 16231,
                "name": "OtherError0xB0",
                "nameLocation": "12183:14:64",
                "nodeType": "EnumValue",
                "src": "12183:14:64"
              },
              {
                "id": 16232,
                "name": "OtherError0xB1",
                "nameLocation": "12208:14:64",
                "nodeType": "EnumValue",
                "src": "12208:14:64"
              },
              {
                "id": 16233,
                "name": "OtherError0xB2",
                "nameLocation": "12224:14:64",
                "nodeType": "EnumValue",
                "src": "12224:14:64"
              },
              {
                "id": 16234,
                "name": "OtherError0xB3",
                "nameLocation": "12240:14:64",
                "nodeType": "EnumValue",
                "src": "12240:14:64"
              },
              {
                "id": 16235,
                "name": "OtherError0xB4",
                "nameLocation": "12256:14:64",
                "nodeType": "EnumValue",
                "src": "12256:14:64"
              },
              {
                "id": 16236,
                "name": "OtherError0xB5",
                "nameLocation": "12272:14:64",
                "nodeType": "EnumValue",
                "src": "12272:14:64"
              },
              {
                "id": 16237,
                "name": "OtherError0xB6",
                "nameLocation": "12288:14:64",
                "nodeType": "EnumValue",
                "src": "12288:14:64"
              },
              {
                "id": 16238,
                "name": "OtherError0xB7",
                "nameLocation": "12304:14:64",
                "nodeType": "EnumValue",
                "src": "12304:14:64"
              },
              {
                "id": 16239,
                "name": "OtherError0xB8",
                "nameLocation": "12329:14:64",
                "nodeType": "EnumValue",
                "src": "12329:14:64"
              },
              {
                "id": 16240,
                "name": "OtherError0xB9",
                "nameLocation": "12345:14:64",
                "nodeType": "EnumValue",
                "src": "12345:14:64"
              },
              {
                "id": 16241,
                "name": "OtherError0xBA",
                "nameLocation": "12361:14:64",
                "nodeType": "EnumValue",
                "src": "12361:14:64"
              },
              {
                "id": 16242,
                "name": "OtherError0xBB",
                "nameLocation": "12377:14:64",
                "nodeType": "EnumValue",
                "src": "12377:14:64"
              },
              {
                "id": 16243,
                "name": "OtherError0xBC",
                "nameLocation": "12393:14:64",
                "nodeType": "EnumValue",
                "src": "12393:14:64"
              },
              {
                "id": 16244,
                "name": "OtherError0xBD",
                "nameLocation": "12409:14:64",
                "nodeType": "EnumValue",
                "src": "12409:14:64"
              },
              {
                "id": 16245,
                "name": "OtherError0xBE",
                "nameLocation": "12425:14:64",
                "nodeType": "EnumValue",
                "src": "12425:14:64"
              },
              {
                "id": 16246,
                "name": "OtherError0xBF",
                "nameLocation": "12450:14:64",
                "nodeType": "EnumValue",
                "src": "12450:14:64"
              },
              {
                "id": 16247,
                "name": "OtherError0xC0",
                "nameLocation": "12466:14:64",
                "nodeType": "EnumValue",
                "src": "12466:14:64"
              },
              {
                "id": 16248,
                "name": "OtherError0xC1",
                "nameLocation": "12482:14:64",
                "nodeType": "EnumValue",
                "src": "12482:14:64"
              },
              {
                "id": 16249,
                "name": "OtherError0xC2",
                "nameLocation": "12498:14:64",
                "nodeType": "EnumValue",
                "src": "12498:14:64"
              },
              {
                "id": 16250,
                "name": "OtherError0xC3",
                "nameLocation": "12514:14:64",
                "nodeType": "EnumValue",
                "src": "12514:14:64"
              },
              {
                "id": 16251,
                "name": "OtherError0xC4",
                "nameLocation": "12530:14:64",
                "nodeType": "EnumValue",
                "src": "12530:14:64"
              },
              {
                "id": 16252,
                "name": "OtherError0xC5",
                "nameLocation": "12546:14:64",
                "nodeType": "EnumValue",
                "src": "12546:14:64"
              },
              {
                "id": 16253,
                "name": "OtherError0xC6",
                "nameLocation": "12571:14:64",
                "nodeType": "EnumValue",
                "src": "12571:14:64"
              },
              {
                "id": 16254,
                "name": "OtherError0xC7",
                "nameLocation": "12587:14:64",
                "nodeType": "EnumValue",
                "src": "12587:14:64"
              },
              {
                "id": 16255,
                "name": "OtherError0xC8",
                "nameLocation": "12603:14:64",
                "nodeType": "EnumValue",
                "src": "12603:14:64"
              },
              {
                "id": 16256,
                "name": "OtherError0xC9",
                "nameLocation": "12619:14:64",
                "nodeType": "EnumValue",
                "src": "12619:14:64"
              },
              {
                "id": 16257,
                "name": "OtherError0xCA",
                "nameLocation": "12635:14:64",
                "nodeType": "EnumValue",
                "src": "12635:14:64"
              },
              {
                "id": 16258,
                "name": "OtherError0xCB",
                "nameLocation": "12651:14:64",
                "nodeType": "EnumValue",
                "src": "12651:14:64"
              },
              {
                "id": 16259,
                "name": "OtherError0xCC",
                "nameLocation": "12667:14:64",
                "nodeType": "EnumValue",
                "src": "12667:14:64"
              },
              {
                "id": 16260,
                "name": "OtherError0xCD",
                "nameLocation": "12692:14:64",
                "nodeType": "EnumValue",
                "src": "12692:14:64"
              },
              {
                "id": 16261,
                "name": "OtherError0xCE",
                "nameLocation": "12708:14:64",
                "nodeType": "EnumValue",
                "src": "12708:14:64"
              },
              {
                "id": 16262,
                "name": "OtherError0xCF",
                "nameLocation": "12724:14:64",
                "nodeType": "EnumValue",
                "src": "12724:14:64"
              },
              {
                "id": 16263,
                "name": "OtherError0xD0",
                "nameLocation": "12740:14:64",
                "nodeType": "EnumValue",
                "src": "12740:14:64"
              },
              {
                "id": 16264,
                "name": "OtherError0xD1",
                "nameLocation": "12756:14:64",
                "nodeType": "EnumValue",
                "src": "12756:14:64"
              },
              {
                "id": 16265,
                "name": "OtherError0xD2",
                "nameLocation": "12772:14:64",
                "nodeType": "EnumValue",
                "src": "12772:14:64"
              },
              {
                "id": 16266,
                "name": "OtherError0xD3",
                "nameLocation": "12788:14:64",
                "nodeType": "EnumValue",
                "src": "12788:14:64"
              },
              {
                "id": 16267,
                "name": "OtherError0xD4",
                "nameLocation": "12813:14:64",
                "nodeType": "EnumValue",
                "src": "12813:14:64"
              },
              {
                "id": 16268,
                "name": "OtherError0xD5",
                "nameLocation": "12829:14:64",
                "nodeType": "EnumValue",
                "src": "12829:14:64"
              },
              {
                "id": 16269,
                "name": "OtherError0xD6",
                "nameLocation": "12845:14:64",
                "nodeType": "EnumValue",
                "src": "12845:14:64"
              },
              {
                "id": 16270,
                "name": "OtherError0xD7",
                "nameLocation": "12861:14:64",
                "nodeType": "EnumValue",
                "src": "12861:14:64"
              },
              {
                "id": 16271,
                "name": "OtherError0xD8",
                "nameLocation": "12877:14:64",
                "nodeType": "EnumValue",
                "src": "12877:14:64"
              },
              {
                "id": 16272,
                "name": "OtherError0xD9",
                "nameLocation": "12893:14:64",
                "nodeType": "EnumValue",
                "src": "12893:14:64"
              },
              {
                "id": 16273,
                "name": "OtherError0xDA",
                "nameLocation": "12909:14:64",
                "nodeType": "EnumValue",
                "src": "12909:14:64"
              },
              {
                "id": 16274,
                "name": "OtherError0xDB",
                "nameLocation": "12934:14:64",
                "nodeType": "EnumValue",
                "src": "12934:14:64"
              },
              {
                "id": 16275,
                "name": "OtherError0xDC",
                "nameLocation": "12950:14:64",
                "nodeType": "EnumValue",
                "src": "12950:14:64"
              },
              {
                "id": 16276,
                "name": "OtherError0xDD",
                "nameLocation": "12966:14:64",
                "nodeType": "EnumValue",
                "src": "12966:14:64"
              },
              {
                "id": 16277,
                "name": "OtherError0xDE",
                "nameLocation": "12982:14:64",
                "nodeType": "EnumValue",
                "src": "12982:14:64"
              },
              {
                "id": 16278,
                "name": "OtherError0xDF",
                "nameLocation": "12998:14:64",
                "nodeType": "EnumValue",
                "src": "12998:14:64"
              },
              {
                "id": 16279,
                "name": "BridgeMalformedDataRequest",
                "nameLocation": "13521:26:64",
                "nodeType": "EnumValue",
                "src": "13521:26:64"
              },
              {
                "id": 16280,
                "name": "BridgePoorIncentives",
                "nameLocation": "13599:20:64",
                "nodeType": "EnumValue",
                "src": "13599:20:64"
              },
              {
                "id": 16281,
                "name": "BridgeOversizedTallyResult",
                "nameLocation": "13848:26:64",
                "nodeType": "EnumValue",
                "src": "13848:26:64"
              },
              {
                "id": 16282,
                "name": "OtherError0xE3",
                "nameLocation": "14153:14:64",
                "nodeType": "EnumValue",
                "src": "14153:14:64"
              },
              {
                "id": 16283,
                "name": "OtherError0xE4",
                "nameLocation": "14169:14:64",
                "nodeType": "EnumValue",
                "src": "14169:14:64"
              },
              {
                "id": 16284,
                "name": "OtherError0xE5",
                "nameLocation": "14185:14:64",
                "nodeType": "EnumValue",
                "src": "14185:14:64"
              },
              {
                "id": 16285,
                "name": "OtherError0xE6",
                "nameLocation": "14201:14:64",
                "nodeType": "EnumValue",
                "src": "14201:14:64"
              },
              {
                "id": 16286,
                "name": "OtherError0xE7",
                "nameLocation": "14217:14:64",
                "nodeType": "EnumValue",
                "src": "14217:14:64"
              },
              {
                "id": 16287,
                "name": "OtherError0xE8",
                "nameLocation": "14233:14:64",
                "nodeType": "EnumValue",
                "src": "14233:14:64"
              },
              {
                "id": 16288,
                "name": "OtherError0xE9",
                "nameLocation": "14249:14:64",
                "nodeType": "EnumValue",
                "src": "14249:14:64"
              },
              {
                "id": 16289,
                "name": "OtherError0xEA",
                "nameLocation": "14274:14:64",
                "nodeType": "EnumValue",
                "src": "14274:14:64"
              },
              {
                "id": 16290,
                "name": "OtherError0xEB",
                "nameLocation": "14290:14:64",
                "nodeType": "EnumValue",
                "src": "14290:14:64"
              },
              {
                "id": 16291,
                "name": "OtherError0xEC",
                "nameLocation": "14306:14:64",
                "nodeType": "EnumValue",
                "src": "14306:14:64"
              },
              {
                "id": 16292,
                "name": "OtherError0xED",
                "nameLocation": "14322:14:64",
                "nodeType": "EnumValue",
                "src": "14322:14:64"
              },
              {
                "id": 16293,
                "name": "OtherError0xEE",
                "nameLocation": "14338:14:64",
                "nodeType": "EnumValue",
                "src": "14338:14:64"
              },
              {
                "id": 16294,
                "name": "OtherError0xEF",
                "nameLocation": "14354:14:64",
                "nodeType": "EnumValue",
                "src": "14354:14:64"
              },
              {
                "id": 16295,
                "name": "OtherError0xF0",
                "nameLocation": "14370:14:64",
                "nodeType": "EnumValue",
                "src": "14370:14:64"
              },
              {
                "id": 16296,
                "name": "OtherError0xF1",
                "nameLocation": "14395:14:64",
                "nodeType": "EnumValue",
                "src": "14395:14:64"
              },
              {
                "id": 16297,
                "name": "OtherError0xF2",
                "nameLocation": "14411:14:64",
                "nodeType": "EnumValue",
                "src": "14411:14:64"
              },
              {
                "id": 16298,
                "name": "OtherError0xF3",
                "nameLocation": "14427:14:64",
                "nodeType": "EnumValue",
                "src": "14427:14:64"
              },
              {
                "id": 16299,
                "name": "OtherError0xF4",
                "nameLocation": "14443:14:64",
                "nodeType": "EnumValue",
                "src": "14443:14:64"
              },
              {
                "id": 16300,
                "name": "OtherError0xF5",
                "nameLocation": "14459:14:64",
                "nodeType": "EnumValue",
                "src": "14459:14:64"
              },
              {
                "id": 16301,
                "name": "OtherError0xF6",
                "nameLocation": "14475:14:64",
                "nodeType": "EnumValue",
                "src": "14475:14:64"
              },
              {
                "id": 16302,
                "name": "OtherError0xF7",
                "nameLocation": "14491:14:64",
                "nodeType": "EnumValue",
                "src": "14491:14:64"
              },
              {
                "id": 16303,
                "name": "OtherError0xF8",
                "nameLocation": "14516:14:64",
                "nodeType": "EnumValue",
                "src": "14516:14:64"
              },
              {
                "id": 16304,
                "name": "OtherError0xF9",
                "nameLocation": "14532:14:64",
                "nodeType": "EnumValue",
                "src": "14532:14:64"
              },
              {
                "id": 16305,
                "name": "OtherError0xFA",
                "nameLocation": "14548:14:64",
                "nodeType": "EnumValue",
                "src": "14548:14:64"
              },
              {
                "id": 16306,
                "name": "OtherError0xFB",
                "nameLocation": "14564:14:64",
                "nodeType": "EnumValue",
                "src": "14564:14:64"
              },
              {
                "id": 16307,
                "name": "OtherError0xFC",
                "nameLocation": "14580:14:64",
                "nodeType": "EnumValue",
                "src": "14580:14:64"
              },
              {
                "id": 16308,
                "name": "OtherError0xFD",
                "nameLocation": "14596:14:64",
                "nodeType": "EnumValue",
                "src": "14596:14:64"
              },
              {
                "id": 16309,
                "name": "OtherError0xFE",
                "nameLocation": "14612:14:64",
                "nodeType": "EnumValue",
                "src": "14612:14:64"
              },
              {
                "id": 16310,
                "name": "UnhandledIntercept",
                "nameLocation": "14855:18:64",
                "nodeType": "EnumValue",
                "src": "14855:18:64"
              }
            ],
            "name": "ResultErrorCodes",
            "nameLocation": "2459:16:64",
            "nodeType": "EnumDefinition",
            "src": "2454:12426:64"
          },
          {
            "body": {
              "id": 16325,
              "nodeType": "Block",
              "src": "14966:74:64",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                          "typeString": "enum Witnet.ResultErrorCodes"
                        },
                        "id": 16322,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 16319,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16314,
                          "src": "14985:4:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                            "typeString": "enum Witnet.ResultErrorCodes"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 16320,
                            "name": "ResultErrorCodes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16311,
                            "src": "14993:16:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_ResultErrorCodes_$16311_$",
                              "typeString": "type(enum Witnet.ResultErrorCodes)"
                            }
                          },
                          "id": 16321,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "15010:21:64",
                          "memberName": "CircumstantialFailure",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 16139,
                          "src": "14993:38:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                            "typeString": "enum Witnet.ResultErrorCodes"
                          }
                        },
                        "src": "14985:46:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 16323,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "14984:48:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 16318,
                  "id": 16324,
                  "nodeType": "Return",
                  "src": "14977:55:64"
                }
              ]
            },
            "id": 16326,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isCircumstantial",
            "nameLocation": "14897:16:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16315,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16314,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "14931:4:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16326,
                  "src": "14914:21:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                    "typeString": "enum Witnet.ResultErrorCodes"
                  },
                  "typeName": {
                    "id": 16313,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 16312,
                      "name": "ResultErrorCodes",
                      "nameLocations": [
                        "14914:16:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16311,
                      "src": "14914:16:64"
                    },
                    "referencedDeclaration": 16311,
                    "src": "14914:16:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                      "typeString": "enum Witnet.ResultErrorCodes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14913:23:64"
            },
            "returnParameters": {
              "id": 16318,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16317,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16326,
                  "src": "14960:4:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16316,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14960:4:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14959:6:64"
            },
            "scope": 17557,
            "src": "14888:152:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16350,
              "nodeType": "Block",
              "src": "15125:227:64",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 16347,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 16342,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                              "typeString": "enum Witnet.ResultErrorCodes"
                            },
                            "id": 16337,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 16334,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16329,
                              "src": "15158:4:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                "typeString": "enum Witnet.ResultErrorCodes"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "expression": {
                                "id": 16335,
                                "name": "ResultErrorCodes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16311,
                                "src": "15166:16:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ResultErrorCodes_$16311_$",
                                  "typeString": "type(enum Witnet.ResultErrorCodes)"
                                }
                              },
                              "id": 16336,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "15183:19:64",
                              "memberName": "InsufficientCommits",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 16137,
                              "src": "15166:36:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                "typeString": "enum Witnet.ResultErrorCodes"
                              }
                            },
                            "src": "15158:44:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                              "typeString": "enum Witnet.ResultErrorCodes"
                            },
                            "id": 16341,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 16338,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16329,
                              "src": "15223:4:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                "typeString": "enum Witnet.ResultErrorCodes"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "expression": {
                                "id": 16339,
                                "name": "ResultErrorCodes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16311,
                                "src": "15231:16:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ResultErrorCodes_$16311_$",
                                  "typeString": "type(enum Witnet.ResultErrorCodes)"
                                }
                              },
                              "id": 16340,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "15248:20:64",
                              "memberName": "InsufficientMajority",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 16136,
                              "src": "15231:37:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                "typeString": "enum Witnet.ResultErrorCodes"
                              }
                            },
                            "src": "15223:45:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "15158:110:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                            "typeString": "enum Witnet.ResultErrorCodes"
                          },
                          "id": 16346,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 16343,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16329,
                            "src": "15289:4:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                              "typeString": "enum Witnet.ResultErrorCodes"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "id": 16344,
                              "name": "ResultErrorCodes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16311,
                              "src": "15297:16:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ResultErrorCodes_$16311_$",
                                "typeString": "type(enum Witnet.ResultErrorCodes)"
                              }
                            },
                            "id": 16345,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "15314:19:64",
                            "memberName": "InsufficientReveals",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 16135,
                            "src": "15297:36:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                              "typeString": "enum Witnet.ResultErrorCodes"
                            }
                          },
                          "src": "15289:44:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "15158:175:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 16348,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "15143:201:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 16333,
                  "id": 16349,
                  "nodeType": "Return",
                  "src": "15136:208:64"
                }
              ]
            },
            "id": 16351,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "lackOfConsensus",
            "nameLocation": "15057:15:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16330,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16329,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "15090:4:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16351,
                  "src": "15073:21:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                    "typeString": "enum Witnet.ResultErrorCodes"
                  },
                  "typeName": {
                    "id": 16328,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 16327,
                      "name": "ResultErrorCodes",
                      "nameLocations": [
                        "15073:16:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16311,
                      "src": "15073:16:64"
                    },
                    "referencedDeclaration": 16311,
                    "src": "15073:16:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                      "typeString": "enum Witnet.ResultErrorCodes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15072:23:64"
            },
            "returnParameters": {
              "id": 16333,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16332,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16351,
                  "src": "15119:4:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16331,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "15119:4:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15118:6:64"
            },
            "scope": 17557,
            "src": "15048:304:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16372,
              "nodeType": "Block",
              "src": "15433:157:64",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 16369,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 16365,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "id": 16360,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16354,
                                "src": "15482:4:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                  "typeString": "enum Witnet.ResultErrorCodes"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                  "typeString": "enum Witnet.ResultErrorCodes"
                                }
                              ],
                              "id": 16359,
                              "name": "lackOfConsensus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16351,
                              "src": "15466:15:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_enum$_ResultErrorCodes_$16311_$returns$_t_bool_$",
                                "typeString": "function (enum Witnet.ResultErrorCodes) pure returns (bool)"
                              }
                            },
                            "id": 16361,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15466:21:64",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "arguments": [
                              {
                                "id": 16363,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16354,
                                "src": "15525:4:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                  "typeString": "enum Witnet.ResultErrorCodes"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                  "typeString": "enum Witnet.ResultErrorCodes"
                                }
                              ],
                              "id": 16362,
                              "name": "isCircumstantial",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16326,
                              "src": "15508:16:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_enum$_ResultErrorCodes_$16311_$returns$_t_bool_$",
                                "typeString": "function (enum Witnet.ResultErrorCodes) pure returns (bool)"
                              }
                            },
                            "id": 16364,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15508:22:64",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "15466:64:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 16367,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16354,
                              "src": "15566:4:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                "typeString": "enum Witnet.ResultErrorCodes"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                "typeString": "enum Witnet.ResultErrorCodes"
                              }
                            ],
                            "id": 16366,
                            "name": "poorIncentives",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16403,
                            "src": "15551:14:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_enum$_ResultErrorCodes_$16311_$returns$_t_bool_$",
                              "typeString": "function (enum Witnet.ResultErrorCodes) pure returns (bool)"
                            }
                          },
                          "id": 16368,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15551:20:64",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "15466:105:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 16370,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "15451:131:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 16358,
                  "id": 16371,
                  "nodeType": "Return",
                  "src": "15444:138:64"
                }
              ]
            },
            "id": 16373,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isRetriable",
            "nameLocation": "15369:11:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16355,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16354,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "15398:4:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16373,
                  "src": "15381:21:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                    "typeString": "enum Witnet.ResultErrorCodes"
                  },
                  "typeName": {
                    "id": 16353,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 16352,
                      "name": "ResultErrorCodes",
                      "nameLocations": [
                        "15381:16:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16311,
                      "src": "15381:16:64"
                    },
                    "referencedDeclaration": 16311,
                    "src": "15381:16:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                      "typeString": "enum Witnet.ResultErrorCodes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15380:23:64"
            },
            "returnParameters": {
              "id": 16358,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16357,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16373,
                  "src": "15427:4:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16356,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "15427:4:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15426:6:64"
            },
            "scope": 17557,
            "src": "15360:230:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16402,
              "nodeType": "Block",
              "src": "15674:300:64",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 16399,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 16394,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 16389,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                "typeString": "enum Witnet.ResultErrorCodes"
                              },
                              "id": 16384,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 16381,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16376,
                                "src": "15707:4:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                  "typeString": "enum Witnet.ResultErrorCodes"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "expression": {
                                  "id": 16382,
                                  "name": "ResultErrorCodes",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16311,
                                  "src": "15715:16:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ResultErrorCodes_$16311_$",
                                    "typeString": "type(enum Witnet.ResultErrorCodes)"
                                  }
                                },
                                "id": 16383,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "15732:20:64",
                                "memberName": "OversizedTallyResult",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 16150,
                                "src": "15715:37:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                  "typeString": "enum Witnet.ResultErrorCodes"
                                }
                              },
                              "src": "15707:45:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "||",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                "typeString": "enum Witnet.ResultErrorCodes"
                              },
                              "id": 16388,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 16385,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16376,
                                "src": "15773:4:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                  "typeString": "enum Witnet.ResultErrorCodes"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "expression": {
                                  "id": 16386,
                                  "name": "ResultErrorCodes",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16311,
                                  "src": "15781:16:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_ResultErrorCodes_$16311_$",
                                    "typeString": "type(enum Witnet.ResultErrorCodes)"
                                  }
                                },
                                "id": 16387,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "15798:19:64",
                                "memberName": "InsufficientCommits",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 16137,
                                "src": "15781:36:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                  "typeString": "enum Witnet.ResultErrorCodes"
                                }
                              },
                              "src": "15773:44:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "15707:110:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                              "typeString": "enum Witnet.ResultErrorCodes"
                            },
                            "id": 16393,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 16390,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16376,
                              "src": "15838:4:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                "typeString": "enum Witnet.ResultErrorCodes"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "expression": {
                                "id": 16391,
                                "name": "ResultErrorCodes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16311,
                                "src": "15846:16:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_ResultErrorCodes_$16311_$",
                                  "typeString": "type(enum Witnet.ResultErrorCodes)"
                                }
                              },
                              "id": 16392,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "15863:20:64",
                              "memberName": "BridgePoorIncentives",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 16280,
                              "src": "15846:37:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                                "typeString": "enum Witnet.ResultErrorCodes"
                              }
                            },
                            "src": "15838:45:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "15707:176:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                            "typeString": "enum Witnet.ResultErrorCodes"
                          },
                          "id": 16398,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 16395,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16376,
                            "src": "15904:4:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                              "typeString": "enum Witnet.ResultErrorCodes"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "id": 16396,
                              "name": "ResultErrorCodes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16311,
                              "src": "15912:16:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ResultErrorCodes_$16311_$",
                                "typeString": "type(enum Witnet.ResultErrorCodes)"
                              }
                            },
                            "id": 16397,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "15929:26:64",
                            "memberName": "BridgeOversizedTallyResult",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 16281,
                            "src": "15912:43:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                              "typeString": "enum Witnet.ResultErrorCodes"
                            }
                          },
                          "src": "15904:51:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "15707:248:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 16400,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "15692:274:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 16380,
                  "id": 16401,
                  "nodeType": "Return",
                  "src": "15685:281:64"
                }
              ]
            },
            "id": 16403,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "poorIncentives",
            "nameLocation": "15607:14:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16377,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16376,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "15639:4:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16403,
                  "src": "15622:21:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                    "typeString": "enum Witnet.ResultErrorCodes"
                  },
                  "typeName": {
                    "id": 16375,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 16374,
                      "name": "ResultErrorCodes",
                      "nameLocations": [
                        "15622:16:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16311,
                      "src": "15622:16:64"
                    },
                    "referencedDeclaration": 16311,
                    "src": "15622:16:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ResultErrorCodes_$16311",
                      "typeString": "enum Witnet.ResultErrorCodes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15621:23:64"
            },
            "returnParameters": {
              "id": 16380,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16379,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16403,
                  "src": "15668:4:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16378,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "15668:4:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15667:6:64"
            },
            "scope": 17557,
            "src": "15598:376:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "canonicalName": "Witnet.RadonDataRequestMethods",
            "documentation": {
              "id": 16404,
              "nodeType": "StructuredDocumentation",
              "src": "15988:83:64",
              "text": "Possible Radon data request methods that can be used within a Radon Retrieval. "
            },
            "id": 16410,
            "members": [
              {
                "id": 16405,
                "name": "Unknown",
                "nameLocation": "16125:7:64",
                "nodeType": "EnumValue",
                "src": "16125:7:64"
              },
              {
                "id": 16406,
                "name": "HttpGet",
                "nameLocation": "16151:7:64",
                "nodeType": "EnumValue",
                "src": "16151:7:64"
              },
              {
                "id": 16407,
                "name": "RNG",
                "nameLocation": "16177:3:64",
                "nodeType": "EnumValue",
                "src": "16177:3:64"
              },
              {
                "id": 16408,
                "name": "HttpPost",
                "nameLocation": "16199:8:64",
                "nodeType": "EnumValue",
                "src": "16199:8:64"
              },
              {
                "id": 16409,
                "name": "HttpHead",
                "nameLocation": "16226:8:64",
                "nodeType": "EnumValue",
                "src": "16226:8:64"
              }
            ],
            "name": "RadonDataRequestMethods",
            "nameLocation": "16082:23:64",
            "nodeType": "EnumDefinition",
            "src": "16077:164:64"
          },
          {
            "canonicalName": "Witnet.RadonDataTypes",
            "documentation": {
              "id": 16411,
              "nodeType": "StructuredDocumentation",
              "src": "16249:111:64",
              "text": "Possible types either processed by Witnet Radon Scripts or included within results to Witnet Data Requests."
            },
            "id": 16432,
            "members": [
              {
                "id": 16412,
                "name": "Any",
                "nameLocation": "16408:3:64",
                "nodeType": "EnumValue",
                "src": "16408:3:64"
              },
              {
                "id": 16413,
                "name": "Array",
                "nameLocation": "16434:5:64",
                "nodeType": "EnumValue",
                "src": "16434:5:64"
              },
              {
                "id": 16414,
                "name": "Bool",
                "nameLocation": "16461:4:64",
                "nodeType": "EnumValue",
                "src": "16461:4:64"
              },
              {
                "id": 16415,
                "name": "Bytes",
                "nameLocation": "16487:5:64",
                "nodeType": "EnumValue",
                "src": "16487:5:64"
              },
              {
                "id": 16416,
                "name": "Integer",
                "nameLocation": "16514:7:64",
                "nodeType": "EnumValue",
                "src": "16514:7:64"
              },
              {
                "id": 16417,
                "name": "Float",
                "nameLocation": "16543:5:64",
                "nodeType": "EnumValue",
                "src": "16543:5:64"
              },
              {
                "id": 16418,
                "name": "Map",
                "nameLocation": "16570:3:64",
                "nodeType": "EnumValue",
                "src": "16570:3:64"
              },
              {
                "id": 16419,
                "name": "String",
                "nameLocation": "16595:6:64",
                "nodeType": "EnumValue",
                "src": "16595:6:64"
              },
              {
                "id": 16420,
                "name": "Unused0x08",
                "nameLocation": "16612:10:64",
                "nodeType": "EnumValue",
                "src": "16612:10:64"
              },
              {
                "id": 16421,
                "name": "Unused0x09",
                "nameLocation": "16624:10:64",
                "nodeType": "EnumValue",
                "src": "16624:10:64"
              },
              {
                "id": 16422,
                "name": "Unused0x0A",
                "nameLocation": "16636:10:64",
                "nodeType": "EnumValue",
                "src": "16636:10:64"
              },
              {
                "id": 16423,
                "name": "Unused0x0B",
                "nameLocation": "16648:10:64",
                "nodeType": "EnumValue",
                "src": "16648:10:64"
              },
              {
                "id": 16424,
                "name": "Unused0x0C",
                "nameLocation": "16669:10:64",
                "nodeType": "EnumValue",
                "src": "16669:10:64"
              },
              {
                "id": 16425,
                "name": "Unused0x0D",
                "nameLocation": "16681:10:64",
                "nodeType": "EnumValue",
                "src": "16681:10:64"
              },
              {
                "id": 16426,
                "name": "Unused0x0E",
                "nameLocation": "16693:10:64",
                "nodeType": "EnumValue",
                "src": "16693:10:64"
              },
              {
                "id": 16427,
                "name": "Unused0x0F",
                "nameLocation": "16705:10:64",
                "nodeType": "EnumValue",
                "src": "16705:10:64"
              },
              {
                "id": 16428,
                "name": "Same",
                "nameLocation": "16737:4:64",
                "nodeType": "EnumValue",
                "src": "16737:4:64"
              },
              {
                "id": 16429,
                "name": "Inner",
                "nameLocation": "16763:5:64",
                "nodeType": "EnumValue",
                "src": "16763:5:64"
              },
              {
                "id": 16430,
                "name": "Match",
                "nameLocation": "16790:5:64",
                "nodeType": "EnumValue",
                "src": "16790:5:64"
              },
              {
                "id": 16431,
                "name": "Subscript",
                "nameLocation": "16817:9:64",
                "nodeType": "EnumValue",
                "src": "16817:9:64"
              }
            ],
            "name": "RadonDataTypes",
            "nameLocation": "16371:14:64",
            "nodeType": "EnumDefinition",
            "src": "16366:467:64"
          },
          {
            "canonicalName": "Witnet.RadonFilter",
            "documentation": {
              "id": 16433,
              "nodeType": "StructuredDocumentation",
              "src": "16841:160:64",
              "text": "Structure defining some data filtering that can be applied at the Aggregation or the Tally stages\n within a Witnet Data Request resolution workflow."
            },
            "id": 16439,
            "members": [
              {
                "constant": false,
                "id": 16436,
                "mutability": "mutable",
                "name": "opcode",
                "nameLocation": "17056:6:64",
                "nodeType": "VariableDeclaration",
                "scope": 16439,
                "src": "17037:25:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_RadonFilterOpcodes_$16451",
                  "typeString": "enum Witnet.RadonFilterOpcodes"
                },
                "typeName": {
                  "id": 16435,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 16434,
                    "name": "RadonFilterOpcodes",
                    "nameLocations": [
                      "17037:18:64"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 16451,
                    "src": "17037:18:64"
                  },
                  "referencedDeclaration": 16451,
                  "src": "17037:18:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RadonFilterOpcodes_$16451",
                    "typeString": "enum Witnet.RadonFilterOpcodes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16438,
                "mutability": "mutable",
                "name": "args",
                "nameLocation": "17079:4:64",
                "nodeType": "VariableDeclaration",
                "scope": 16439,
                "src": "17073:10:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 16437,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "17073:5:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RadonFilter",
            "nameLocation": "17014:11:64",
            "nodeType": "StructDefinition",
            "scope": 17557,
            "src": "17007:84:64",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.RadonFilterOpcodes",
            "documentation": {
              "id": 16440,
              "nodeType": "StructuredDocumentation",
              "src": "17099:68:64",
              "text": "Filtering methods currently supported on the Witnet blockchain. "
            },
            "id": 16451,
            "members": [
              {
                "id": 16441,
                "name": "Reserved0x00",
                "nameLocation": "17219:12:64",
                "nodeType": "EnumValue",
                "src": "17219:12:64"
              },
              {
                "id": 16442,
                "name": "Reserved0x01",
                "nameLocation": "17268:12:64",
                "nodeType": "EnumValue",
                "src": "17268:12:64"
              },
              {
                "id": 16443,
                "name": "Reserved0x02",
                "nameLocation": "17314:12:64",
                "nodeType": "EnumValue",
                "src": "17314:12:64"
              },
              {
                "id": 16444,
                "name": "Reserved0x03",
                "nameLocation": "17358:12:64",
                "nodeType": "EnumValue",
                "src": "17358:12:64"
              },
              {
                "id": 16445,
                "name": "Reserved0x04",
                "nameLocation": "17413:12:64",
                "nodeType": "EnumValue",
                "src": "17413:12:64"
              },
              {
                "id": 16446,
                "name": "StandardDeviation",
                "nameLocation": "17467:17:64",
                "nodeType": "EnumValue",
                "src": "17467:17:64"
              },
              {
                "id": 16447,
                "name": "Reserved0x06",
                "nameLocation": "17506:12:64",
                "nodeType": "EnumValue",
                "src": "17506:12:64"
              },
              {
                "id": 16448,
                "name": "Reserved0x07",
                "nameLocation": "17547:12:64",
                "nodeType": "EnumValue",
                "src": "17547:12:64"
              },
              {
                "id": 16449,
                "name": "Mode",
                "nameLocation": "17591:4:64",
                "nodeType": "EnumValue",
                "src": "17591:4:64"
              },
              {
                "id": 16450,
                "name": "Reserved0x09",
                "nameLocation": "17617:12:64",
                "nodeType": "EnumValue",
                "src": "17617:12:64"
              }
            ],
            "name": "RadonFilterOpcodes",
            "nameLocation": "17178:18:64",
            "nodeType": "EnumDefinition",
            "src": "17173:482:64"
          },
          {
            "canonicalName": "Witnet.RadonReducer",
            "documentation": {
              "id": 16452,
              "nodeType": "StructuredDocumentation",
              "src": "17663:185:64",
              "text": "Structure defining the array of filters and reducting function to be applied at either the Aggregation\n or the Tally stages within a Witnet Data Request resolution workflow."
            },
            "id": 16460,
            "members": [
              {
                "constant": false,
                "id": 16455,
                "mutability": "mutable",
                "name": "opcode",
                "nameLocation": "17905:6:64",
                "nodeType": "VariableDeclaration",
                "scope": 16460,
                "src": "17885:26:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_RadonReducerOpcodes_$16474",
                  "typeString": "enum Witnet.RadonReducerOpcodes"
                },
                "typeName": {
                  "id": 16454,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 16453,
                    "name": "RadonReducerOpcodes",
                    "nameLocations": [
                      "17885:19:64"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 16474,
                    "src": "17885:19:64"
                  },
                  "referencedDeclaration": 16474,
                  "src": "17885:19:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RadonReducerOpcodes_$16474",
                    "typeString": "enum Witnet.RadonReducerOpcodes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16459,
                "mutability": "mutable",
                "name": "filters",
                "nameLocation": "17936:7:64",
                "nodeType": "VariableDeclaration",
                "scope": 16460,
                "src": "17922:21:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_storage_$dyn_storage_ptr",
                  "typeString": "struct Witnet.RadonFilter[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 16457,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 16456,
                      "name": "RadonFilter",
                      "nameLocations": [
                        "17922:11:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16439,
                      "src": "17922:11:64"
                    },
                    "referencedDeclaration": 16439,
                    "src": "17922:11:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonFilter_$16439_storage_ptr",
                      "typeString": "struct Witnet.RadonFilter"
                    }
                  },
                  "id": 16458,
                  "nodeType": "ArrayTypeName",
                  "src": "17922:13:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_storage_$dyn_storage_ptr",
                    "typeString": "struct Witnet.RadonFilter[]"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RadonReducer",
            "nameLocation": "17861:12:64",
            "nodeType": "StructDefinition",
            "scope": 17557,
            "src": "17854:97:64",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.RadonReducerOpcodes",
            "documentation": {
              "id": 16461,
              "nodeType": "StructuredDocumentation",
              "src": "17959:69:64",
              "text": "Reducting functions currently supported on the Witnet blockchain."
            },
            "id": 16474,
            "members": [
              {
                "id": 16462,
                "name": "Reserved0x00",
                "nameLocation": "18081:12:64",
                "nodeType": "EnumValue",
                "src": "18081:12:64"
              },
              {
                "id": 16463,
                "name": "Reserved0x01",
                "nameLocation": "18126:12:64",
                "nodeType": "EnumValue",
                "src": "18126:12:64"
              },
              {
                "id": 16464,
                "name": "Mode",
                "nameLocation": "18171:4:64",
                "nodeType": "EnumValue",
                "src": "18171:4:64"
              },
              {
                "id": 16465,
                "name": "AverageMean",
                "nameLocation": "18197:11:64",
                "nodeType": "EnumValue",
                "src": "18197:11:64"
              },
              {
                "id": 16466,
                "name": "Reserved0x04",
                "nameLocation": "18230:12:64",
                "nodeType": "EnumValue",
                "src": "18230:12:64"
              },
              {
                "id": 16467,
                "name": "AverageMedian",
                "nameLocation": "18287:13:64",
                "nodeType": "EnumValue",
                "src": "18287:13:64"
              },
              {
                "id": 16468,
                "name": "Reserved0x06",
                "nameLocation": "18322:12:64",
                "nodeType": "EnumValue",
                "src": "18322:12:64"
              },
              {
                "id": 16469,
                "name": "StandardDeviation",
                "nameLocation": "18381:17:64",
                "nodeType": "EnumValue",
                "src": "18381:17:64"
              },
              {
                "id": 16470,
                "name": "Reserved0x08",
                "nameLocation": "18420:12:64",
                "nodeType": "EnumValue",
                "src": "18420:12:64"
              },
              {
                "id": 16471,
                "name": "Reserved0x09",
                "nameLocation": "18474:12:64",
                "nodeType": "EnumValue",
                "src": "18474:12:64"
              },
              {
                "id": 16472,
                "name": "Reserved0x10",
                "nameLocation": "18527:12:64",
                "nodeType": "EnumValue",
                "src": "18527:12:64"
              },
              {
                "id": 16473,
                "name": "ConcatenateAndHash",
                "nameLocation": "18581:18:64",
                "nodeType": "EnumValue",
                "src": "18581:18:64"
              }
            ],
            "name": "RadonReducerOpcodes",
            "nameLocation": "18039:19:64",
            "nodeType": "EnumDefinition",
            "src": "18034:572:64"
          },
          {
            "canonicalName": "Witnet.RadonRetrieval",
            "documentation": {
              "id": 16475,
              "nodeType": "StructuredDocumentation",
              "src": "18614:118:64",
              "text": "Structure containing all the parameters that fully describe a Witnet Radon Retrieval within a Witnet Data Request."
            },
            "id": 16495,
            "members": [
              {
                "constant": false,
                "id": 16477,
                "mutability": "mutable",
                "name": "argsCount",
                "nameLocation": "18777:9:64",
                "nodeType": "VariableDeclaration",
                "scope": 16495,
                "src": "18771:15:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 16476,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "18771:5:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16480,
                "mutability": "mutable",
                "name": "method",
                "nameLocation": "18821:6:64",
                "nodeType": "VariableDeclaration",
                "scope": 16495,
                "src": "18797:30:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_RadonDataRequestMethods_$16410",
                  "typeString": "enum Witnet.RadonDataRequestMethods"
                },
                "typeName": {
                  "id": 16479,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 16478,
                    "name": "RadonDataRequestMethods",
                    "nameLocations": [
                      "18797:23:64"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 16410,
                    "src": "18797:23:64"
                  },
                  "referencedDeclaration": 16410,
                  "src": "18797:23:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RadonDataRequestMethods_$16410",
                    "typeString": "enum Witnet.RadonDataRequestMethods"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16483,
                "mutability": "mutable",
                "name": "resultDataType",
                "nameLocation": "18853:14:64",
                "nodeType": "VariableDeclaration",
                "scope": 16495,
                "src": "18838:29:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_RadonDataTypes_$16432",
                  "typeString": "enum Witnet.RadonDataTypes"
                },
                "typeName": {
                  "id": 16482,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 16481,
                    "name": "RadonDataTypes",
                    "nameLocations": [
                      "18838:14:64"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 16432,
                    "src": "18838:14:64"
                  },
                  "referencedDeclaration": 16432,
                  "src": "18838:14:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_RadonDataTypes_$16432",
                    "typeString": "enum Witnet.RadonDataTypes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16485,
                "mutability": "mutable",
                "name": "url",
                "nameLocation": "18885:3:64",
                "nodeType": "VariableDeclaration",
                "scope": 16495,
                "src": "18878:10:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 16484,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "18878:6:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16487,
                "mutability": "mutable",
                "name": "body",
                "nameLocation": "18906:4:64",
                "nodeType": "VariableDeclaration",
                "scope": 16495,
                "src": "18899:11:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 16486,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "18899:6:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16492,
                "mutability": "mutable",
                "name": "headers",
                "nameLocation": "18933:7:64",
                "nodeType": "VariableDeclaration",
                "scope": 16495,
                "src": "18921:19:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr",
                  "typeString": "string[2][]"
                },
                "typeName": {
                  "baseType": {
                    "baseType": {
                      "id": 16488,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "18921:6:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 16490,
                    "length": {
                      "hexValue": "32",
                      "id": 16489,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18928:1:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_2_by_1",
                        "typeString": "int_const 2"
                      },
                      "value": "2"
                    },
                    "nodeType": "ArrayTypeName",
                    "src": "18921:9:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr",
                      "typeString": "string[2]"
                    }
                  },
                  "id": 16491,
                  "nodeType": "ArrayTypeName",
                  "src": "18921:11:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr",
                    "typeString": "string[2][]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16494,
                "mutability": "mutable",
                "name": "script",
                "nameLocation": "18957:6:64",
                "nodeType": "VariableDeclaration",
                "scope": 16495,
                "src": "18951:12:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 16493,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "18951:5:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RadonRetrieval",
            "nameLocation": "18745:14:64",
            "nodeType": "StructDefinition",
            "scope": 17557,
            "src": "18738:233:64",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.RadonRAD",
            "documentation": {
              "id": 16496,
              "nodeType": "StructuredDocumentation",
              "src": "18979:90:64",
              "text": "Structure containing the Retrieve-Attestation-Delivery parts of a Witnet Data Request."
            },
            "id": 16507,
            "members": [
              {
                "constant": false,
                "id": 16500,
                "mutability": "mutable",
                "name": "retrieve",
                "nameLocation": "19119:8:64",
                "nodeType": "VariableDeclaration",
                "scope": 16507,
                "src": "19102:25:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_RadonRetrieval_$16495_storage_$dyn_storage_ptr",
                  "typeString": "struct Witnet.RadonRetrieval[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 16498,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 16497,
                      "name": "RadonRetrieval",
                      "nameLocations": [
                        "19102:14:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16495,
                      "src": "19102:14:64"
                    },
                    "referencedDeclaration": 16495,
                    "src": "19102:14:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonRetrieval_$16495_storage_ptr",
                      "typeString": "struct Witnet.RadonRetrieval"
                    }
                  },
                  "id": 16499,
                  "nodeType": "ArrayTypeName",
                  "src": "19102:16:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_RadonRetrieval_$16495_storage_$dyn_storage_ptr",
                    "typeString": "struct Witnet.RadonRetrieval[]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16503,
                "mutability": "mutable",
                "name": "aggregate",
                "nameLocation": "19151:9:64",
                "nodeType": "VariableDeclaration",
                "scope": 16507,
                "src": "19138:22:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_RadonReducer_$16460_storage_ptr",
                  "typeString": "struct Witnet.RadonReducer"
                },
                "typeName": {
                  "id": 16502,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 16501,
                    "name": "RadonReducer",
                    "nameLocations": [
                      "19138:12:64"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 16460,
                    "src": "19138:12:64"
                  },
                  "referencedDeclaration": 16460,
                  "src": "19138:12:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonReducer_$16460_storage_ptr",
                    "typeString": "struct Witnet.RadonReducer"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16506,
                "mutability": "mutable",
                "name": "tally",
                "nameLocation": "19184:5:64",
                "nodeType": "VariableDeclaration",
                "scope": 16507,
                "src": "19171:18:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_RadonReducer_$16460_storage_ptr",
                  "typeString": "struct Witnet.RadonReducer"
                },
                "typeName": {
                  "id": 16505,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 16504,
                    "name": "RadonReducer",
                    "nameLocations": [
                      "19171:12:64"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 16460,
                    "src": "19171:12:64"
                  },
                  "referencedDeclaration": 16460,
                  "src": "19171:12:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonReducer_$16460_storage_ptr",
                    "typeString": "struct Witnet.RadonReducer"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RadonRAD",
            "nameLocation": "19082:8:64",
            "nodeType": "StructDefinition",
            "scope": 17557,
            "src": "19075:122:64",
            "visibility": "public"
          },
          {
            "canonicalName": "Witnet.RadonSLA",
            "documentation": {
              "id": 16508,
              "nodeType": "StructuredDocumentation",
              "src": "19205:90:64",
              "text": "Structure containing the Service Level Aggreement parameters of a Witnet Data Request."
            },
            "id": 16519,
            "members": [
              {
                "constant": false,
                "id": 16510,
                "mutability": "mutable",
                "name": "numWitnesses",
                "nameLocation": "19334:12:64",
                "nodeType": "VariableDeclaration",
                "scope": 16519,
                "src": "19328:18:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 16509,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "19328:5:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16512,
                "mutability": "mutable",
                "name": "minConsensusPercentage",
                "nameLocation": "19363:22:64",
                "nodeType": "VariableDeclaration",
                "scope": 16519,
                "src": "19357:28:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint8",
                  "typeString": "uint8"
                },
                "typeName": {
                  "id": 16511,
                  "name": "uint8",
                  "nodeType": "ElementaryTypeName",
                  "src": "19357:5:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16514,
                "mutability": "mutable",
                "name": "witnessReward",
                "nameLocation": "19403:13:64",
                "nodeType": "VariableDeclaration",
                "scope": 16519,
                "src": "19396:20:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 16513,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "19396:6:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16516,
                "mutability": "mutable",
                "name": "witnessCollateral",
                "nameLocation": "19434:17:64",
                "nodeType": "VariableDeclaration",
                "scope": 16519,
                "src": "19427:24:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 16515,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "19427:6:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 16518,
                "mutability": "mutable",
                "name": "minerCommitRevealFee",
                "nameLocation": "19469:20:64",
                "nodeType": "VariableDeclaration",
                "scope": 16519,
                "src": "19462:27:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 16517,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "19462:6:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RadonSLA",
            "nameLocation": "19308:8:64",
            "nodeType": "StructDefinition",
            "scope": 17557,
            "src": "19301:196:64",
            "visibility": "public"
          },
          {
            "body": {
              "id": 16595,
              "nodeType": "Block",
              "src": "19970:305:64",
              "statements": [
                {
                  "assignments": [
                    16528
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16528,
                      "mutability": "mutable",
                      "name": "b2",
                      "nameLocation": "19994:2:64",
                      "nodeType": "VariableDeclaration",
                      "scope": 16595,
                      "src": "19981:15:64",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 16527,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "19981:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 16533,
                  "initialValue": {
                    "arguments": [
                      {
                        "hexValue": "32",
                        "id": 16531,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20009:1:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        }
                      ],
                      "id": 16530,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "19999:9:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (bytes memory)"
                      },
                      "typeName": {
                        "id": 16529,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "20003:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      }
                    },
                    "id": 16532,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19999:12:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "19981:30:64"
                },
                {
                  "assignments": [
                    16535
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16535,
                      "mutability": "mutable",
                      "name": "d0",
                      "nameLocation": "20028:2:64",
                      "nodeType": "VariableDeclaration",
                      "scope": 16595,
                      "src": "20022:8:64",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 16534,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "20022:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 16544,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 16543,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 16540,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 16538,
                            "name": "_u",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16522,
                            "src": "20039:2:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "hexValue": "3136",
                            "id": 16539,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "20044:2:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "20039:7:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 16537,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "20033:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint8_$",
                          "typeString": "type(uint8)"
                        },
                        "typeName": {
                          "id": 16536,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "20033:5:64",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 16541,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20033:14:64",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "3438",
                      "id": 16542,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20050:2:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_48_by_1",
                        "typeString": "int_const 48"
                      },
                      "value": "48"
                    },
                    "src": "20033:19:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20022:30:64"
                },
                {
                  "assignments": [
                    16546
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16546,
                      "mutability": "mutable",
                      "name": "d1",
                      "nameLocation": "20069:2:64",
                      "nodeType": "VariableDeclaration",
                      "scope": 16595,
                      "src": "20063:8:64",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "typeName": {
                        "id": 16545,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "20063:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 16555,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 16554,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 16551,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 16549,
                            "name": "_u",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16522,
                            "src": "20080:2:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "%",
                          "rightExpression": {
                            "hexValue": "3136",
                            "id": 16550,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "20085:2:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "20080:7:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 16548,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "20074:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint8_$",
                          "typeString": "type(uint8)"
                        },
                        "typeName": {
                          "id": 16547,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "20074:5:64",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 16552,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20074:14:64",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "hexValue": "3438",
                      "id": 16553,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20091:2:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_48_by_1",
                        "typeString": "int_const 48"
                      },
                      "value": "48"
                    },
                    "src": "20074:19:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20063:30:64"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 16558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 16556,
                      "name": "d0",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16535,
                      "src": "20108:2:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "3537",
                      "id": 16557,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20113:2:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_57_by_1",
                        "typeString": "int_const 57"
                      },
                      "value": "57"
                    },
                    "src": "20108:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16563,
                  "nodeType": "IfStatement",
                  "src": "20104:33:64",
                  "trueBody": {
                    "expression": {
                      "id": 16561,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 16559,
                        "name": "d0",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16535,
                        "src": "20130:2:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "+=",
                      "rightHandSide": {
                        "hexValue": "37",
                        "id": 16560,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20136:1:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_7_by_1",
                          "typeString": "int_const 7"
                        },
                        "value": "7"
                      },
                      "src": "20130:7:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 16562,
                    "nodeType": "ExpressionStatement",
                    "src": "20130:7:64"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 16566,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 16564,
                      "name": "d1",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16546,
                      "src": "20152:2:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "3537",
                      "id": 16565,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20157:2:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_57_by_1",
                        "typeString": "int_const 57"
                      },
                      "value": "57"
                    },
                    "src": "20152:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16571,
                  "nodeType": "IfStatement",
                  "src": "20148:33:64",
                  "trueBody": {
                    "expression": {
                      "id": 16569,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 16567,
                        "name": "d1",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16546,
                        "src": "20174:2:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "+=",
                      "rightHandSide": {
                        "hexValue": "37",
                        "id": 16568,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20180:1:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_7_by_1",
                          "typeString": "int_const 7"
                        },
                        "value": "7"
                      },
                      "src": "20174:7:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "id": 16570,
                    "nodeType": "ExpressionStatement",
                    "src": "20174:7:64"
                  }
                },
                {
                  "expression": {
                    "id": 16579,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 16572,
                        "name": "b2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16528,
                        "src": "20192:2:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 16574,
                      "indexExpression": {
                        "hexValue": "30",
                        "id": 16573,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20195:1:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "20192:5:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes1",
                        "typeString": "bytes1"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 16577,
                          "name": "d0",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16535,
                          "src": "20207:2:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 16576,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "20200:6:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes1_$",
                          "typeString": "type(bytes1)"
                        },
                        "typeName": {
                          "id": 16575,
                          "name": "bytes1",
                          "nodeType": "ElementaryTypeName",
                          "src": "20200:6:64",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 16578,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20200:10:64",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes1",
                        "typeString": "bytes1"
                      }
                    },
                    "src": "20192:18:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes1",
                      "typeString": "bytes1"
                    }
                  },
                  "id": 16580,
                  "nodeType": "ExpressionStatement",
                  "src": "20192:18:64"
                },
                {
                  "expression": {
                    "id": 16588,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 16581,
                        "name": "b2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16528,
                        "src": "20221:2:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 16583,
                      "indexExpression": {
                        "hexValue": "31",
                        "id": 16582,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20224:1:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "20221:5:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes1",
                        "typeString": "bytes1"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 16586,
                          "name": "d1",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16546,
                          "src": "20236:2:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 16585,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "20229:6:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes1_$",
                          "typeString": "type(bytes1)"
                        },
                        "typeName": {
                          "id": 16584,
                          "name": "bytes1",
                          "nodeType": "ElementaryTypeName",
                          "src": "20229:6:64",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 16587,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20229:10:64",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes1",
                        "typeString": "bytes1"
                      }
                    },
                    "src": "20221:18:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes1",
                      "typeString": "bytes1"
                    }
                  },
                  "id": 16589,
                  "nodeType": "ExpressionStatement",
                  "src": "20221:18:64"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 16592,
                        "name": "b2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16528,
                        "src": "20264:2:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 16591,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "20257:6:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": {
                        "id": 16590,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "20257:6:64",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 16593,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20257:10:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 16526,
                  "id": 16594,
                  "nodeType": "Return",
                  "src": "20250:17:64"
                }
              ]
            },
            "documentation": {
              "id": 16520,
              "nodeType": "StructuredDocumentation",
              "src": "19751:121:64",
              "text": "@notice Convert a `uint8` into a 2 characters long `string` representing its two less significant hexadecimal values."
            },
            "id": 16596,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toHexString",
            "nameLocation": "19887:11:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16523,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16522,
                  "mutability": "mutable",
                  "name": "_u",
                  "nameLocation": "19905:2:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16596,
                  "src": "19899:8:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 16521,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "19899:5:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19898:10:64"
            },
            "returnParameters": {
              "id": 16526,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16525,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16596,
                  "src": "19950:13:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 16524,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "19950:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19949:15:64"
            },
            "scope": 17557,
            "src": "19878:397:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16747,
              "nodeType": "Block",
              "src": "20515:626:64",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 16606,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 16604,
                      "name": "_u",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16599,
                      "src": "20530:2:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "hexValue": "3130",
                      "id": 16605,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20535:2:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_10_by_1",
                        "typeString": "int_const 10"
                      },
                      "value": "10"
                    },
                    "src": "20530:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      },
                      "id": 16636,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 16634,
                        "name": "_u",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16599,
                        "src": "20683:2:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "hexValue": "313030",
                        "id": 16635,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20688:3:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_100_by_1",
                          "typeString": "int_const 100"
                        },
                        "value": "100"
                      },
                      "src": "20683:8:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 16744,
                      "nodeType": "Block",
                      "src": "20888:246:64",
                      "statements": [
                        {
                          "assignments": [
                            16683
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 16683,
                              "mutability": "mutable",
                              "name": "b3",
                              "nameLocation": "20916:2:64",
                              "nodeType": "VariableDeclaration",
                              "scope": 16744,
                              "src": "20903:15:64",
                              "stateVariable": false,
                              "storageLocation": "memory",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes"
                              },
                              "typeName": {
                                "id": 16682,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "20903:5:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_storage_ptr",
                                  "typeString": "bytes"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 16688,
                          "initialValue": {
                            "arguments": [
                              {
                                "hexValue": "33",
                                "id": 16686,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "20931:1:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_3_by_1",
                                  "typeString": "int_const 3"
                                },
                                "value": "3"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_3_by_1",
                                  "typeString": "int_const 3"
                                }
                              ],
                              "id": 16685,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "20921:9:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (bytes memory)"
                              },
                              "typeName": {
                                "id": 16684,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "20925:5:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_storage_ptr",
                                  "typeString": "bytes"
                                }
                              }
                            },
                            "id": 16687,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "20921:12:64",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "20903:30:64"
                        },
                        {
                          "expression": {
                            "id": 16703,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "baseExpression": {
                                "id": 16689,
                                "name": "b3",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16683,
                                "src": "20948:2:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 16691,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 16690,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "20951:1:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "20948:5:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "arguments": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 16701,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 16698,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 16696,
                                          "name": "_u",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 16599,
                                          "src": "20969:2:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "/",
                                        "rightExpression": {
                                          "hexValue": "313030",
                                          "id": 16697,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "20974:3:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_100_by_1",
                                            "typeString": "int_const 100"
                                          },
                                          "value": "100"
                                        },
                                        "src": "20969:8:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 16695,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "20963:5:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 16694,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "20963:5:64",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 16699,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "20963:15:64",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "hexValue": "3438",
                                    "id": 16700,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "20981:2:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_48_by_1",
                                      "typeString": "int_const 48"
                                    },
                                    "value": "48"
                                  },
                                  "src": "20963:20:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 16693,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "20956:6:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes1_$",
                                  "typeString": "type(bytes1)"
                                },
                                "typeName": {
                                  "id": 16692,
                                  "name": "bytes1",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "20956:6:64",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 16702,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "20956:28:64",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "src": "20948:36:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "id": 16704,
                          "nodeType": "ExpressionStatement",
                          "src": "20948:36:64"
                        },
                        {
                          "expression": {
                            "id": 16721,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "baseExpression": {
                                "id": 16705,
                                "name": "b3",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16683,
                                "src": "20999:2:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 16707,
                              "indexExpression": {
                                "hexValue": "31",
                                "id": 16706,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "21002:1:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "20999:5:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "arguments": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 16719,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 16716,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          },
                                          "id": 16714,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "id": 16712,
                                            "name": "_u",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 16599,
                                            "src": "21020:2:64",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "%",
                                          "rightExpression": {
                                            "hexValue": "313030",
                                            "id": 16713,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "21025:3:64",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_100_by_1",
                                              "typeString": "int_const 100"
                                            },
                                            "value": "100"
                                          },
                                          "src": "21020:8:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "/",
                                        "rightExpression": {
                                          "hexValue": "3130",
                                          "id": 16715,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "21031:2:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_10_by_1",
                                            "typeString": "int_const 10"
                                          },
                                          "value": "10"
                                        },
                                        "src": "21020:13:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 16711,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "21014:5:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 16710,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21014:5:64",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 16717,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "21014:20:64",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "hexValue": "3438",
                                    "id": 16718,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "21037:2:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_48_by_1",
                                      "typeString": "int_const 48"
                                    },
                                    "value": "48"
                                  },
                                  "src": "21014:25:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 16709,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "21007:6:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes1_$",
                                  "typeString": "type(bytes1)"
                                },
                                "typeName": {
                                  "id": 16708,
                                  "name": "bytes1",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "21007:6:64",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 16720,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "21007:33:64",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "src": "20999:41:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "id": 16722,
                          "nodeType": "ExpressionStatement",
                          "src": "20999:41:64"
                        },
                        {
                          "expression": {
                            "id": 16737,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "baseExpression": {
                                "id": 16723,
                                "name": "b3",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16683,
                                "src": "21055:2:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 16725,
                              "indexExpression": {
                                "hexValue": "32",
                                "id": 16724,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "21058:1:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "21055:5:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "arguments": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 16735,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 16732,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 16730,
                                          "name": "_u",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 16599,
                                          "src": "21076:2:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "%",
                                        "rightExpression": {
                                          "hexValue": "3130",
                                          "id": 16731,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "21081:2:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_10_by_1",
                                            "typeString": "int_const 10"
                                          },
                                          "value": "10"
                                        },
                                        "src": "21076:7:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 16729,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "21070:5:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 16728,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21070:5:64",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 16733,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "21070:14:64",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "hexValue": "3438",
                                    "id": 16734,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "21087:2:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_48_by_1",
                                      "typeString": "int_const 48"
                                    },
                                    "value": "48"
                                  },
                                  "src": "21070:19:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 16727,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "21063:6:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes1_$",
                                  "typeString": "type(bytes1)"
                                },
                                "typeName": {
                                  "id": 16726,
                                  "name": "bytes1",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "21063:6:64",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 16736,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "21063:27:64",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "src": "21055:35:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "id": 16738,
                          "nodeType": "ExpressionStatement",
                          "src": "21055:35:64"
                        },
                        {
                          "expression": {
                            "arguments": [
                              {
                                "id": 16741,
                                "name": "b3",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16683,
                                "src": "21119:2:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 16740,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "21112:6:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                "typeString": "type(string storage pointer)"
                              },
                              "typeName": {
                                "id": 16739,
                                "name": "string",
                                "nodeType": "ElementaryTypeName",
                                "src": "21112:6:64",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 16742,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "21112:10:64",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "functionReturnParameters": 16603,
                          "id": 16743,
                          "nodeType": "Return",
                          "src": "21105:17:64"
                        }
                      ]
                    },
                    "id": 16745,
                    "nodeType": "IfStatement",
                    "src": "20679:455:64",
                    "trueBody": {
                      "id": 16681,
                      "nodeType": "Block",
                      "src": "20693:189:64",
                      "statements": [
                        {
                          "assignments": [
                            16638
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 16638,
                              "mutability": "mutable",
                              "name": "b2",
                              "nameLocation": "20721:2:64",
                              "nodeType": "VariableDeclaration",
                              "scope": 16681,
                              "src": "20708:15:64",
                              "stateVariable": false,
                              "storageLocation": "memory",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes"
                              },
                              "typeName": {
                                "id": 16637,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "20708:5:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_storage_ptr",
                                  "typeString": "bytes"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 16643,
                          "initialValue": {
                            "arguments": [
                              {
                                "hexValue": "32",
                                "id": 16641,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "20736:1:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                }
                              ],
                              "id": 16640,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "20726:9:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (bytes memory)"
                              },
                              "typeName": {
                                "id": 16639,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "20730:5:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_storage_ptr",
                                  "typeString": "bytes"
                                }
                              }
                            },
                            "id": 16642,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "20726:12:64",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "20708:30:64"
                        },
                        {
                          "expression": {
                            "id": 16658,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "baseExpression": {
                                "id": 16644,
                                "name": "b2",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16638,
                                "src": "20753:2:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 16646,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 16645,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "20756:1:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "20753:5:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "arguments": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 16656,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 16653,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 16651,
                                          "name": "_u",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 16599,
                                          "src": "20774:2:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "/",
                                        "rightExpression": {
                                          "hexValue": "3130",
                                          "id": 16652,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "20779:2:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_10_by_1",
                                            "typeString": "int_const 10"
                                          },
                                          "value": "10"
                                        },
                                        "src": "20774:7:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 16650,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "20768:5:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 16649,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "20768:5:64",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 16654,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "20768:14:64",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "hexValue": "3438",
                                    "id": 16655,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "20785:2:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_48_by_1",
                                      "typeString": "int_const 48"
                                    },
                                    "value": "48"
                                  },
                                  "src": "20768:19:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 16648,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "20761:6:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes1_$",
                                  "typeString": "type(bytes1)"
                                },
                                "typeName": {
                                  "id": 16647,
                                  "name": "bytes1",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "20761:6:64",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 16657,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "20761:27:64",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "src": "20753:35:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "id": 16659,
                          "nodeType": "ExpressionStatement",
                          "src": "20753:35:64"
                        },
                        {
                          "expression": {
                            "id": 16674,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "baseExpression": {
                                "id": 16660,
                                "name": "b2",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16638,
                                "src": "20803:2:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 16662,
                              "indexExpression": {
                                "hexValue": "31",
                                "id": 16661,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "20806:1:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "20803:5:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "arguments": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 16672,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "arguments": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        "id": 16669,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 16667,
                                          "name": "_u",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 16599,
                                          "src": "20824:2:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "%",
                                        "rightExpression": {
                                          "hexValue": "3130",
                                          "id": 16668,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "20829:2:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_10_by_1",
                                            "typeString": "int_const 10"
                                          },
                                          "value": "10"
                                        },
                                        "src": "20824:7:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      ],
                                      "id": 16666,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "20818:5:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 16665,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "20818:5:64",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 16670,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "20818:14:64",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "hexValue": "3438",
                                    "id": 16671,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "20835:2:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_48_by_1",
                                      "typeString": "int_const 48"
                                    },
                                    "value": "48"
                                  },
                                  "src": "20818:19:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 16664,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "20811:6:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes1_$",
                                  "typeString": "type(bytes1)"
                                },
                                "typeName": {
                                  "id": 16663,
                                  "name": "bytes1",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "20811:6:64",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 16673,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "20811:27:64",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              }
                            },
                            "src": "20803:35:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "id": 16675,
                          "nodeType": "ExpressionStatement",
                          "src": "20803:35:64"
                        },
                        {
                          "expression": {
                            "arguments": [
                              {
                                "id": 16678,
                                "name": "b2",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16638,
                                "src": "20867:2:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 16677,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "20860:6:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                                "typeString": "type(string storage pointer)"
                              },
                              "typeName": {
                                "id": 16676,
                                "name": "string",
                                "nodeType": "ElementaryTypeName",
                                "src": "20860:6:64",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 16679,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "20860:10:64",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          "functionReturnParameters": 16603,
                          "id": 16680,
                          "nodeType": "Return",
                          "src": "20853:17:64"
                        }
                      ]
                    }
                  },
                  "id": 16746,
                  "nodeType": "IfStatement",
                  "src": "20526:608:64",
                  "trueBody": {
                    "id": 16633,
                    "nodeType": "Block",
                    "src": "20539:134:64",
                    "statements": [
                      {
                        "assignments": [
                          16608
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 16608,
                            "mutability": "mutable",
                            "name": "b1",
                            "nameLocation": "20567:2:64",
                            "nodeType": "VariableDeclaration",
                            "scope": 16633,
                            "src": "20554:15:64",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 16607,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "20554:5:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 16613,
                        "initialValue": {
                          "arguments": [
                            {
                              "hexValue": "31",
                              "id": 16611,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "20582:1:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 16610,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "20572:9:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function (uint256) pure returns (bytes memory)"
                            },
                            "typeName": {
                              "id": 16609,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "20576:5:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            }
                          },
                          "id": 16612,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "20572:12:64",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "20554:30:64"
                      },
                      {
                        "expression": {
                          "id": 16626,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 16614,
                              "name": "b1",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16608,
                              "src": "20599:2:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 16616,
                            "indexExpression": {
                              "hexValue": "30",
                              "id": 16615,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "20602:1:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "20599:5:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 16624,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "arguments": [
                                    {
                                      "id": 16621,
                                      "name": "_u",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 16599,
                                      "src": "20620:2:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    ],
                                    "id": 16620,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "20614:5:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 16619,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "20614:5:64",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 16622,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "20614:9:64",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "hexValue": "3438",
                                  "id": 16623,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "20626:2:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_48_by_1",
                                    "typeString": "int_const 48"
                                  },
                                  "value": "48"
                                },
                                "src": "20614:14:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 16618,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "20607:6:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 16617,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "20607:6:64",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 16625,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "20607:22:64",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "src": "20599:30:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          }
                        },
                        "id": 16627,
                        "nodeType": "ExpressionStatement",
                        "src": "20599:30:64"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 16630,
                              "name": "b1",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16608,
                              "src": "20658:2:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 16629,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "20651:6:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                              "typeString": "type(string storage pointer)"
                            },
                            "typeName": {
                              "id": 16628,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "20651:6:64",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 16631,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "20651:10:64",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        "functionReturnParameters": 16603,
                        "id": 16632,
                        "nodeType": "Return",
                        "src": "20644:17:64"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 16597,
              "nodeType": "StructuredDocumentation",
              "src": "20283:137:64",
              "text": "@notice Convert a `uint8` into a 1, 2 or 3 characters long `string` representing its.\n three less significant decimal values."
            },
            "id": 16748,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toString",
            "nameLocation": "20435:8:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16600,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16599,
                  "mutability": "mutable",
                  "name": "_u",
                  "nameLocation": "20450:2:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16748,
                  "src": "20444:8:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 16598,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "20444:5:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20443:10:64"
            },
            "returnParameters": {
              "id": 16603,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16602,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16748,
                  "src": "20495:13:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 16601,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "20495:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20494:15:64"
            },
            "scope": 17557,
            "src": "20426:715:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16839,
              "nodeType": "Block",
              "src": "21310:448:64",
              "statements": [
                {
                  "assignments": [
                    16757
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16757,
                      "mutability": "mutable",
                      "name": "maxlength",
                      "nameLocation": "21326:9:64",
                      "nodeType": "VariableDeclaration",
                      "scope": 16839,
                      "src": "21321:14:64",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 16756,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "21321:4:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 16759,
                  "initialValue": {
                    "hexValue": "313030",
                    "id": 16758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "21338:3:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_100_by_1",
                      "typeString": "int_const 100"
                    },
                    "value": "100"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "21321:20:64"
                },
                {
                  "assignments": [
                    16761
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16761,
                      "mutability": "mutable",
                      "name": "reversed",
                      "nameLocation": "21365:8:64",
                      "nodeType": "VariableDeclaration",
                      "scope": 16839,
                      "src": "21352:21:64",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 16760,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "21352:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 16766,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 16764,
                        "name": "maxlength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16757,
                        "src": "21386:9:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 16763,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "21376:9:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (bytes memory)"
                      },
                      "typeName": {
                        "id": 16762,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "21380:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      }
                    },
                    "id": 16765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21376:20:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "21352:44:64"
                },
                {
                  "assignments": [
                    16768
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16768,
                      "mutability": "mutable",
                      "name": "i",
                      "nameLocation": "21412:1:64",
                      "nodeType": "VariableDeclaration",
                      "scope": 16839,
                      "src": "21407:6:64",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 16767,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "21407:4:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 16770,
                  "initialValue": {
                    "hexValue": "30",
                    "id": 16769,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "21416:1:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "21407:10:64"
                },
                {
                  "body": {
                    "id": 16798,
                    "nodeType": "Block",
                    "src": "21431:137:64",
                    "statements": [
                      {
                        "assignments": [
                          16772
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 16772,
                            "mutability": "mutable",
                            "name": "remainder",
                            "nameLocation": "21452:9:64",
                            "nodeType": "VariableDeclaration",
                            "scope": 16798,
                            "src": "21446:15:64",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 16771,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "21446:5:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 16779,
                        "initialValue": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 16777,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 16775,
                                "name": "v",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16751,
                                "src": "21470:1:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "%",
                              "rightExpression": {
                                "hexValue": "3130",
                                "id": 16776,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "21474:2:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_10_by_1",
                                  "typeString": "int_const 10"
                                },
                                "value": "10"
                              },
                              "src": "21470:6:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 16774,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "21464:5:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint8_$",
                              "typeString": "type(uint8)"
                            },
                            "typeName": {
                              "id": 16773,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "21464:5:64",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 16778,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "21464:13:64",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "21446:31:64"
                      },
                      {
                        "expression": {
                          "id": 16784,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 16780,
                            "name": "v",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16751,
                            "src": "21492:1:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 16783,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 16781,
                              "name": "v",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16751,
                              "src": "21496:1:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "/",
                            "rightExpression": {
                              "hexValue": "3130",
                              "id": 16782,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "21500:2:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_10_by_1",
                                "typeString": "int_const 10"
                              },
                              "value": "10"
                            },
                            "src": "21496:6:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21492:10:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 16785,
                        "nodeType": "ExpressionStatement",
                        "src": "21492:10:64"
                      },
                      {
                        "expression": {
                          "id": 16796,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 16786,
                              "name": "reversed",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16761,
                              "src": "21517:8:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 16789,
                            "indexExpression": {
                              "id": 16788,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": false,
                              "src": "21526:4:64",
                              "subExpression": {
                                "id": 16787,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16768,
                                "src": "21526:1:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "21517:14:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 16794,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "hexValue": "3438",
                                  "id": 16792,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "21541:2:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_48_by_1",
                                    "typeString": "int_const 48"
                                  },
                                  "value": "48"
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "id": 16793,
                                  "name": "remainder",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16772,
                                  "src": "21546:9:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "src": "21541:14:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 16791,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "21534:6:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes1_$",
                                "typeString": "type(bytes1)"
                              },
                              "typeName": {
                                "id": 16790,
                                "name": "bytes1",
                                "nodeType": "ElementaryTypeName",
                                "src": "21534:6:64",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 16795,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "21534:22:64",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "src": "21517:39:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          }
                        },
                        "id": 16797,
                        "nodeType": "ExpressionStatement",
                        "src": "21517:39:64"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 16801,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 16799,
                      "name": "v",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16751,
                      "src": "21576:1:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 16800,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "21581:1:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "21576:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16802,
                  "nodeType": "DoWhileStatement",
                  "src": "21428:156:64"
                },
                {
                  "assignments": [
                    16804
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16804,
                      "mutability": "mutable",
                      "name": "buf",
                      "nameLocation": "21607:3:64",
                      "nodeType": "VariableDeclaration",
                      "scope": 16839,
                      "src": "21594:16:64",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 16803,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "21594:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 16809,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 16807,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16768,
                        "src": "21623:1:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 16806,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "21613:9:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (bytes memory)"
                      },
                      "typeName": {
                        "id": 16805,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "21617:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      }
                    },
                    "id": 16808,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21613:12:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "21594:31:64"
                },
                {
                  "body": {
                    "id": 16832,
                    "nodeType": "Block",
                    "src": "21667:55:64",
                    "statements": [
                      {
                        "expression": {
                          "id": 16830,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 16820,
                              "name": "buf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16804,
                              "src": "21682:3:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 16824,
                            "indexExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 16823,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 16821,
                                "name": "j",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16811,
                                "src": "21686:1:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "hexValue": "31",
                                "id": 16822,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "21690:1:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "21686:5:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "21682:10:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "baseExpression": {
                              "id": 16825,
                              "name": "reversed",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16761,
                              "src": "21695:8:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 16829,
                            "indexExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 16828,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 16826,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16768,
                                "src": "21704:1:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "id": 16827,
                                "name": "j",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16811,
                                "src": "21708:1:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "21704:5:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "21695:15:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "src": "21682:28:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          }
                        },
                        "id": 16831,
                        "nodeType": "ExpressionStatement",
                        "src": "21682:28:64"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 16816,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 16814,
                      "name": "j",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16811,
                      "src": "21653:1:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<=",
                    "rightExpression": {
                      "id": 16815,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16768,
                      "src": "21658:1:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21653:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16833,
                  "initializationExpression": {
                    "assignments": [
                      16811
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 16811,
                        "mutability": "mutable",
                        "name": "j",
                        "nameLocation": "21646:1:64",
                        "nodeType": "VariableDeclaration",
                        "scope": 16833,
                        "src": "21641:6:64",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 16810,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "21641:4:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 16813,
                    "initialValue": {
                      "hexValue": "31",
                      "id": 16812,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "21650:1:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "21641:10:64"
                  },
                  "isSimpleCounterLoop": false,
                  "loopExpression": {
                    "expression": {
                      "id": 16818,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "21661:4:64",
                      "subExpression": {
                        "id": 16817,
                        "name": "j",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16811,
                        "src": "21661:1:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16819,
                    "nodeType": "ExpressionStatement",
                    "src": "21661:4:64"
                  },
                  "nodeType": "ForStatement",
                  "src": "21636:86:64"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 16836,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16804,
                        "src": "21746:3:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 16835,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "21739:6:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": {
                        "id": 16834,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "21739:6:64",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 16837,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21739:11:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 16755,
                  "id": 16838,
                  "nodeType": "Return",
                  "src": "21732:18:64"
                }
              ]
            },
            "documentation": {
              "id": 16749,
              "nodeType": "StructuredDocumentation",
              "src": "21149:67:64",
              "text": "@notice Convert a `uint` into a string` representing its value."
            },
            "id": 16840,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toString",
            "nameLocation": "21231:8:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16752,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16751,
                  "mutability": "mutable",
                  "name": "v",
                  "nameLocation": "21245:1:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16840,
                  "src": "21240:6:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16750,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "21240:4:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "21239:8:64"
            },
            "returnParameters": {
              "id": 16755,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16754,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16840,
                  "src": "21290:13:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 16753,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "21290:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "21289:15:64"
            },
            "scope": 17557,
            "src": "21222:536:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16863,
              "nodeType": "Block",
              "src": "22311:134:64",
              "statements": [
                {
                  "assignments": [
                    16853
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16853,
                      "mutability": "mutable",
                      "name": "cborValue",
                      "nameLocation": "22345:9:64",
                      "nodeType": "VariableDeclaration",
                      "scope": 16863,
                      "src": "22322:32:64",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                        "typeString": "struct WitnetCBOR.CBOR"
                      },
                      "typeName": {
                        "id": 16852,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 16851,
                          "name": "WitnetCBOR.CBOR",
                          "nameLocations": [
                            "22322:10:64",
                            "22333:4:64"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 19218,
                          "src": "22322:15:64"
                        },
                        "referencedDeclaration": 19218,
                        "src": "22322:15:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                          "typeString": "struct WitnetCBOR.CBOR"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 16858,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 16856,
                        "name": "cborBytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16843,
                        "src": "22378:9:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 16854,
                        "name": "WitnetCBOR",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20734,
                        "src": "22357:10:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitnetCBOR_$20734_$",
                          "typeString": "type(library WitnetCBOR)"
                        }
                      },
                      "id": 16855,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "22368:9:64",
                      "memberName": "fromBytes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19359,
                      "src": "22357:20:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_CBOR_$19218_memory_ptr_$",
                        "typeString": "function (bytes memory) pure returns (struct WitnetCBOR.CBOR memory)"
                      }
                    },
                    "id": 16857,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22357:31:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "22322:66:64"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 16860,
                        "name": "cborValue",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16853,
                        "src": "22427:9:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      ],
                      "id": 16859,
                      "name": "_resultFromCborValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17530,
                      "src": "22406:20:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_struct$_Result_$16042_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct Witnet.Result memory)"
                      }
                    },
                    "id": 16861,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22406:31:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  },
                  "functionReturnParameters": 16848,
                  "id": 16862,
                  "nodeType": "Return",
                  "src": "22399:38:64"
                }
              ]
            },
            "documentation": {
              "id": 16841,
              "nodeType": "StructuredDocumentation",
              "src": "22012:177:64",
              "text": "@dev Transform given bytes into a Witnet.Result instance.\n @param cborBytes Raw bytes representing a CBOR-encoded value.\n @return A `Witnet.Result` instance."
            },
            "id": 16864,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toWitnetResult",
            "nameLocation": "22204:14:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16844,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16843,
                  "mutability": "mutable",
                  "name": "cborBytes",
                  "nameLocation": "22232:9:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16864,
                  "src": "22219:22:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 16842,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "22219:5:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22218:24:64"
            },
            "returnParameters": {
              "id": 16848,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16847,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16864,
                  "src": "22284:20:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 16846,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 16845,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "22284:6:64",
                        "22291:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "22284:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "22284:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22283:22:64"
            },
            "scope": 17557,
            "src": "22195:250:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16878,
              "nodeType": "Block",
              "src": "22525:52:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 16874,
                            "name": "_value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16866,
                            "src": "22561:6:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 16873,
                          "name": "toBytes20",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16911,
                          "src": "22551:9:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes20_$",
                            "typeString": "function (bytes memory) pure returns (bytes20)"
                          }
                        },
                        "id": 16875,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "22551:17:64",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes20",
                          "typeString": "bytes20"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes20",
                          "typeString": "bytes20"
                        }
                      ],
                      "id": 16872,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "22543:7:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 16871,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "22543:7:64",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 16876,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22543:26:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 16870,
                  "id": 16877,
                  "nodeType": "Return",
                  "src": "22536:33:64"
                }
              ]
            },
            "id": 16879,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toAddress",
            "nameLocation": "22462:9:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16867,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16866,
                  "mutability": "mutable",
                  "name": "_value",
                  "nameLocation": "22485:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16879,
                  "src": "22472:19:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 16865,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "22472:5:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22471:21:64"
            },
            "returnParameters": {
              "id": 16870,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16869,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16879,
                  "src": "22516:7:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16868,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "22516:7:64",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22515:9:64"
            },
            "scope": 17557,
            "src": "22453:124:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16894,
              "nodeType": "Block",
              "src": "22655:57:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 16889,
                            "name": "_value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16881,
                            "src": "22693:6:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "hexValue": "34",
                            "id": 16890,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "22701:1:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            "value": "4"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            }
                          ],
                          "id": 16888,
                          "name": "toFixedBytes",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16980,
                          "src": "22680:12:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory,uint8) pure returns (bytes32)"
                          }
                        },
                        "id": 16891,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "22680:23:64",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 16887,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "22673:6:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes4_$",
                        "typeString": "type(bytes4)"
                      },
                      "typeName": {
                        "id": 16886,
                        "name": "bytes4",
                        "nodeType": "ElementaryTypeName",
                        "src": "22673:6:64",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 16892,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22673:31:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 16885,
                  "id": 16893,
                  "nodeType": "Return",
                  "src": "22666:38:64"
                }
              ]
            },
            "id": 16895,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toBytes4",
            "nameLocation": "22594:8:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16882,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16881,
                  "mutability": "mutable",
                  "name": "_value",
                  "nameLocation": "22616:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16895,
                  "src": "22603:19:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 16880,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "22603:5:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22602:21:64"
            },
            "returnParameters": {
              "id": 16885,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16884,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16895,
                  "src": "22647:6:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 16883,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "22647:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22646:8:64"
            },
            "scope": 17557,
            "src": "22585:127:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16910,
              "nodeType": "Block",
              "src": "22796:59:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 16905,
                            "name": "_value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16897,
                            "src": "22835:6:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "hexValue": "3230",
                            "id": 16906,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "22843:2:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_20_by_1",
                              "typeString": "int_const 20"
                            },
                            "value": "20"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_rational_20_by_1",
                              "typeString": "int_const 20"
                            }
                          ],
                          "id": 16904,
                          "name": "toFixedBytes",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16980,
                          "src": "22822:12:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$returns$_t_bytes32_$",
                            "typeString": "function (bytes memory,uint8) pure returns (bytes32)"
                          }
                        },
                        "id": 16907,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "22822:24:64",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 16903,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "22814:7:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes20_$",
                        "typeString": "type(bytes20)"
                      },
                      "typeName": {
                        "id": 16902,
                        "name": "bytes20",
                        "nodeType": "ElementaryTypeName",
                        "src": "22814:7:64",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 16908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22814:33:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes20",
                      "typeString": "bytes20"
                    }
                  },
                  "functionReturnParameters": 16901,
                  "id": 16909,
                  "nodeType": "Return",
                  "src": "22807:40:64"
                }
              ]
            },
            "id": 16911,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toBytes20",
            "nameLocation": "22733:9:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16898,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16897,
                  "mutability": "mutable",
                  "name": "_value",
                  "nameLocation": "22756:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16911,
                  "src": "22743:19:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 16896,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "22743:5:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22742:21:64"
            },
            "returnParameters": {
              "id": 16901,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16900,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16911,
                  "src": "22787:7:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  },
                  "typeName": {
                    "id": 16899,
                    "name": "bytes20",
                    "nodeType": "ElementaryTypeName",
                    "src": "22787:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes20",
                      "typeString": "bytes20"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22786:9:64"
            },
            "scope": 17557,
            "src": "22724:131:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16923,
              "nodeType": "Block",
              "src": "22939:50:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 16919,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16913,
                        "src": "22970:6:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "hexValue": "3332",
                        "id": 16920,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22978:2:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_32_by_1",
                          "typeString": "int_const 32"
                        },
                        "value": "32"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_rational_32_by_1",
                          "typeString": "int_const 32"
                        }
                      ],
                      "id": 16918,
                      "name": "toFixedBytes",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16980,
                      "src": "22957:12:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint8_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory,uint8) pure returns (bytes32)"
                      }
                    },
                    "id": 16921,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22957:24:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 16917,
                  "id": 16922,
                  "nodeType": "Return",
                  "src": "22950:31:64"
                }
              ]
            },
            "id": 16924,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toBytes32",
            "nameLocation": "22876:9:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16914,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16913,
                  "mutability": "mutable",
                  "name": "_value",
                  "nameLocation": "22899:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16924,
                  "src": "22886:19:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 16912,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "22886:5:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22885:21:64"
            },
            "returnParameters": {
              "id": 16917,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16916,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 16924,
                  "src": "22930:7:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16915,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22930:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22929:9:64"
            },
            "scope": 17557,
            "src": "22867:122:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16979,
              "nodeType": "Block",
              "src": "23121:289:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "id": 16936,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 16934,
                          "name": "_numBytes",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16928,
                          "src": "23139:9:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "hexValue": "3332",
                          "id": 16935,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "23152:2:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_32_by_1",
                            "typeString": "int_const 32"
                          },
                          "value": "32"
                        },
                        "src": "23139:15:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16933,
                      "name": "assert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4294967293,
                      "src": "23132:6:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16937,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23132:23:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16938,
                  "nodeType": "ExpressionStatement",
                  "src": "23132:23:64"
                },
                {
                  "id": 16978,
                  "nodeType": "UncheckedBlock",
                  "src": "23166:237:64",
                  "statements": [
                    {
                      "assignments": [
                        16940
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 16940,
                          "mutability": "mutable",
                          "name": "_len",
                          "nameLocation": "23196:4:64",
                          "nodeType": "VariableDeclaration",
                          "scope": 16978,
                          "src": "23191:9:64",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 16939,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "23191:4:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 16949,
                      "initialValue": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 16944,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 16941,
                              "name": "_value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16926,
                              "src": "23203:6:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 16942,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "23210:6:64",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "23203:13:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "id": 16943,
                            "name": "_numBytes",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16928,
                            "src": "23219:9:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "23203:25:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "expression": {
                            "id": 16946,
                            "name": "_value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16926,
                            "src": "23243:6:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 16947,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "23250:6:64",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "23243:13:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 16948,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "23203:53:64",
                        "trueExpression": {
                          "id": 16945,
                          "name": "_numBytes",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16928,
                          "src": "23231:9:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "23191:65:64"
                    },
                    {
                      "body": {
                        "id": 16976,
                        "nodeType": "Block",
                        "src": "23307:85:64",
                        "statements": [
                          {
                            "expression": {
                              "id": 16974,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "id": 16960,
                                "name": "_bytes32",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16931,
                                "src": "23326:8:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "|=",
                              "rightHandSide": {
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 16973,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "arguments": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      },
                                      "id": 16967,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "baseExpression": {
                                          "id": 16963,
                                          "name": "_value",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 16926,
                                          "src": "23346:6:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                          }
                                        },
                                        "id": 16965,
                                        "indexExpression": {
                                          "id": 16964,
                                          "name": "_i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 16951,
                                          "src": "23353:2:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "23346:10:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "&",
                                      "rightExpression": {
                                        "hexValue": "30786666",
                                        "id": 16966,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "23359:4:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_255_by_1",
                                          "typeString": "int_const 255"
                                        },
                                        "value": "0xff"
                                      },
                                      "src": "23346:17:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    ],
                                    "id": 16962,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "23338:7:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_bytes32_$",
                                      "typeString": "type(bytes32)"
                                    },
                                    "typeName": {
                                      "id": 16961,
                                      "name": "bytes32",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "23338:7:64",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 16968,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "23338:26:64",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 16971,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "id": 16969,
                                        "name": "_i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 16951,
                                        "src": "23369:2:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "*",
                                      "rightExpression": {
                                        "hexValue": "38",
                                        "id": 16970,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "23374:1:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_8_by_1",
                                          "typeString": "int_const 8"
                                        },
                                        "value": "8"
                                      },
                                      "src": "23369:6:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 16972,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "23368:8:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "23338:38:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "23326:50:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "id": 16975,
                            "nodeType": "ExpressionStatement",
                            "src": "23326:50:64"
                          }
                        ]
                      },
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 16956,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 16954,
                          "name": "_i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16951,
                          "src": "23289:2:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "id": 16955,
                          "name": "_len",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16940,
                          "src": "23294:4:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "23289:9:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 16977,
                      "initializationExpression": {
                        "assignments": [
                          16951
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 16951,
                            "mutability": "mutable",
                            "name": "_i",
                            "nameLocation": "23281:2:64",
                            "nodeType": "VariableDeclaration",
                            "scope": 16977,
                            "src": "23276:7:64",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 16950,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "23276:4:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 16953,
                        "initialValue": {
                          "hexValue": "30",
                          "id": 16952,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "23286:1:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "23276:11:64"
                      },
                      "isSimpleCounterLoop": true,
                      "loopExpression": {
                        "expression": {
                          "id": 16958,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "23300:5:64",
                          "subExpression": {
                            "id": 16957,
                            "name": "_i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16951,
                            "src": "23300:2:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 16959,
                        "nodeType": "ExpressionStatement",
                        "src": "23300:5:64"
                      },
                      "nodeType": "ForStatement",
                      "src": "23271:121:64"
                    }
                  ]
                }
              ]
            },
            "id": 16980,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toFixedBytes",
            "nameLocation": "23006:12:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16929,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16926,
                  "mutability": "mutable",
                  "name": "_value",
                  "nameLocation": "23032:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16980,
                  "src": "23019:19:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 16925,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "23019:5:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16928,
                  "mutability": "mutable",
                  "name": "_numBytes",
                  "nameLocation": "23046:9:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16980,
                  "src": "23040:15:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 16927,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "23040:5:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23018:38:64"
            },
            "returnParameters": {
              "id": 16932,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16931,
                  "mutability": "mutable",
                  "name": "_bytes32",
                  "nameLocation": "23106:8:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 16980,
                  "src": "23098:16:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16930,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23098:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23097:18:64"
            },
            "scope": 17557,
            "src": "22997:413:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17060,
              "nodeType": "Block",
              "src": "23765:455:64",
              "statements": [
                {
                  "assignments": [
                    16989
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16989,
                      "mutability": "mutable",
                      "name": "lowered",
                      "nameLocation": "23789:7:64",
                      "nodeType": "VariableDeclaration",
                      "scope": 17060,
                      "src": "23776:20:64",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 16988,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "23776:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 16998,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 16994,
                              "name": "str",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16983,
                              "src": "23815:3:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "id": 16993,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "23809:5:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                              "typeString": "type(bytes storage pointer)"
                            },
                            "typeName": {
                              "id": 16992,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "23809:5:64",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 16995,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "23809:10:64",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 16996,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "23820:6:64",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "23809:17:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 16991,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "23799:9:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (bytes memory)"
                      },
                      "typeName": {
                        "id": 16990,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "23803:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      }
                    },
                    "id": 16997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23799:28:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "23776:51:64"
                },
                {
                  "id": 17054,
                  "nodeType": "UncheckedBlock",
                  "src": "23838:342:64",
                  "statements": [
                    {
                      "body": {
                        "id": 17052,
                        "nodeType": "Block",
                        "src": "23906:263:64",
                        "statements": [
                          {
                            "assignments": [
                              17011
                            ],
                            "declarations": [
                              {
                                "constant": false,
                                "id": 17011,
                                "mutability": "mutable",
                                "name": "char",
                                "nameLocation": "23931:4:64",
                                "nodeType": "VariableDeclaration",
                                "scope": 17052,
                                "src": "23925:10:64",
                                "stateVariable": false,
                                "storageLocation": "default",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "typeName": {
                                  "id": 17010,
                                  "name": "uint8",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "23925:5:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "visibility": "internal"
                              }
                            ],
                            "id": 17021,
                            "initialValue": {
                              "arguments": [
                                {
                                  "baseExpression": {
                                    "arguments": [
                                      {
                                        "id": 17016,
                                        "name": "str",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 16983,
                                        "src": "23950:3:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      ],
                                      "id": 17015,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "23944:5:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                        "typeString": "type(bytes storage pointer)"
                                      },
                                      "typeName": {
                                        "id": 17014,
                                        "name": "bytes",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "23944:5:64",
                                        "typeDescriptions": {}
                                      }
                                    },
                                    "id": 17017,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "23944:10:64",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  },
                                  "id": 17019,
                                  "indexExpression": {
                                    "id": 17018,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17000,
                                    "src": "23955:1:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "23944:13:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes1",
                                    "typeString": "bytes1"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes1",
                                    "typeString": "bytes1"
                                  }
                                ],
                                "id": 17013,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "23938:5:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint8_$",
                                  "typeString": "type(uint8)"
                                },
                                "typeName": {
                                  "id": 17012,
                                  "name": "uint8",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "23938:5:64",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 17020,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "23938:20:64",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "VariableDeclarationStatement",
                            "src": "23925:33:64"
                          },
                          {
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 17028,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 17024,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 17022,
                                  "name": "char",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17011,
                                  "src": "23981:4:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">=",
                                "rightExpression": {
                                  "hexValue": "3635",
                                  "id": 17023,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "23989:2:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_65_by_1",
                                    "typeString": "int_const 65"
                                  },
                                  "value": "65"
                                },
                                "src": "23981:10:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 17027,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 17025,
                                  "name": "char",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17011,
                                  "src": "23995:4:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<=",
                                "rightExpression": {
                                  "hexValue": "3930",
                                  "id": 17026,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24003:2:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_90_by_1",
                                    "typeString": "int_const 90"
                                  },
                                  "value": "90"
                                },
                                "src": "23995:10:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "23981:24:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "id": 17050,
                              "nodeType": "Block",
                              "src": "24086:68:64",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 17048,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "baseExpression": {
                                        "id": 17041,
                                        "name": "lowered",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 16989,
                                        "src": "24109:7:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      },
                                      "id": 17043,
                                      "indexExpression": {
                                        "id": 17042,
                                        "name": "i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 17000,
                                        "src": "24117:1:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "nodeType": "IndexAccess",
                                      "src": "24109:10:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "arguments": [
                                        {
                                          "id": 17046,
                                          "name": "char",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 17011,
                                          "src": "24129:4:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 17045,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "24122:6:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes1_$",
                                          "typeString": "type(bytes1)"
                                        },
                                        "typeName": {
                                          "id": 17044,
                                          "name": "bytes1",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "24122:6:64",
                                          "typeDescriptions": {}
                                        }
                                      },
                                      "id": 17047,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "24122:12:64",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    },
                                    "src": "24109:25:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes1",
                                      "typeString": "bytes1"
                                    }
                                  },
                                  "id": 17049,
                                  "nodeType": "ExpressionStatement",
                                  "src": "24109:25:64"
                                }
                              ]
                            },
                            "id": 17051,
                            "nodeType": "IfStatement",
                            "src": "23977:177:64",
                            "trueBody": {
                              "id": 17040,
                              "nodeType": "Block",
                              "src": "24007:73:64",
                              "statements": [
                                {
                                  "expression": {
                                    "id": 17038,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "baseExpression": {
                                        "id": 17029,
                                        "name": "lowered",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 16989,
                                        "src": "24030:7:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      },
                                      "id": 17031,
                                      "indexExpression": {
                                        "id": 17030,
                                        "name": "i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 17000,
                                        "src": "24038:1:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "nodeType": "IndexAccess",
                                      "src": "24030:10:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "arguments": [
                                        {
                                          "commonType": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          },
                                          "id": 17036,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "id": 17034,
                                            "name": "char",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17011,
                                            "src": "24050:4:64",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint8",
                                              "typeString": "uint8"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "+",
                                          "rightExpression": {
                                            "hexValue": "3332",
                                            "id": 17035,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "24057:2:64",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_32_by_1",
                                              "typeString": "int_const 32"
                                            },
                                            "value": "32"
                                          },
                                          "src": "24050:9:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                          }
                                        ],
                                        "id": 17033,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "24043:6:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_bytes1_$",
                                          "typeString": "type(bytes1)"
                                        },
                                        "typeName": {
                                          "id": 17032,
                                          "name": "bytes1",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "24043:6:64",
                                          "typeDescriptions": {}
                                        }
                                      },
                                      "id": 17037,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "24043:17:64",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes1",
                                        "typeString": "bytes1"
                                      }
                                    },
                                    "src": "24030:30:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes1",
                                      "typeString": "bytes1"
                                    }
                                  },
                                  "id": 17039,
                                  "nodeType": "ExpressionStatement",
                                  "src": "24030:30:64"
                                }
                              ]
                            }
                          }
                        ]
                      },
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 17006,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 17003,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17000,
                          "src": "23880:1:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "expression": {
                            "id": 17004,
                            "name": "lowered",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16989,
                            "src": "23884:7:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 17005,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "23892:6:64",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "23884:14:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "23880:18:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 17053,
                      "initializationExpression": {
                        "assignments": [
                          17000
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 17000,
                            "mutability": "mutable",
                            "name": "i",
                            "nameLocation": "23873:1:64",
                            "nodeType": "VariableDeclaration",
                            "scope": 17053,
                            "src": "23868:6:64",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 16999,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "23868:4:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 17002,
                        "initialValue": {
                          "hexValue": "30",
                          "id": 17001,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "23877:1:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "23868:10:64"
                      },
                      "isSimpleCounterLoop": true,
                      "loopExpression": {
                        "expression": {
                          "id": 17008,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "23900:4:64",
                          "subExpression": {
                            "id": 17007,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17000,
                            "src": "23900:1:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 17009,
                        "nodeType": "ExpressionStatement",
                        "src": "23900:4:64"
                      },
                      "nodeType": "ForStatement",
                      "src": "23863:306:64"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 17057,
                        "name": "lowered",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16989,
                        "src": "24204:7:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 17056,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "24197:6:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": {
                        "id": 17055,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "24197:6:64",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 17058,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24197:15:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 16987,
                  "id": 17059,
                  "nodeType": "Return",
                  "src": "24190:22:64"
                }
              ]
            },
            "documentation": {
              "id": 16981,
              "nodeType": "StructuredDocumentation",
              "src": "23420:238:64",
              "text": "===============================================================================================================\n --- 'string' helper methods -----------------------------------------------------------------------------------"
            },
            "id": 17061,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toLowerCase",
            "nameLocation": "23673:11:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16984,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16983,
                  "mutability": "mutable",
                  "name": "str",
                  "nameLocation": "23699:3:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17061,
                  "src": "23685:17:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 16982,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "23685:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23684:19:64"
            },
            "returnParameters": {
              "id": 16987,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16986,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17061,
                  "src": "23745:13:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 16985,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "23745:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23744:15:64"
            },
            "scope": 17557,
            "src": "23664:556:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17105,
              "nodeType": "Block",
              "src": "24372:274:64",
              "statements": [
                {
                  "assignments": [
                    17070
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17070,
                      "mutability": "mutable",
                      "name": "_bytes",
                      "nameLocation": "24396:6:64",
                      "nodeType": "VariableDeclaration",
                      "scope": 17105,
                      "src": "24383:19:64",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 17069,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "24383:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 17077,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 17074,
                            "name": "_bytes32",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17064,
                            "src": "24431:8:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17073,
                          "name": "_toStringLength",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17556,
                          "src": "24415:15:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_uint256_$",
                            "typeString": "function (bytes32) pure returns (uint256)"
                          }
                        },
                        "id": 17075,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "24415:25:64",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 17072,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "24405:9:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (bytes memory)"
                      },
                      "typeName": {
                        "id": 17071,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "24409:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      }
                    },
                    "id": 17076,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24405:36:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "24383:58:64"
                },
                {
                  "body": {
                    "id": 17098,
                    "nodeType": "Block",
                    "src": "24491:116:64",
                    "statements": [
                      {
                        "expression": {
                          "id": 17092,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 17086,
                              "name": "_bytes",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17070,
                              "src": "24506:6:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 17088,
                            "indexExpression": {
                              "id": 17087,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17079,
                              "src": "24513:2:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "24506:10:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "baseExpression": {
                              "id": 17089,
                              "name": "_bytes32",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17064,
                              "src": "24519:8:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "id": 17091,
                            "indexExpression": {
                              "id": 17090,
                              "name": "_i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17079,
                              "src": "24528:2:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "24519:12:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "src": "24506:25:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          }
                        },
                        "id": 17093,
                        "nodeType": "ExpressionStatement",
                        "src": "24506:25:64"
                      },
                      {
                        "id": 17097,
                        "nodeType": "UncheckedBlock",
                        "src": "24546:50:64",
                        "statements": [
                          {
                            "expression": {
                              "id": 17095,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": false,
                              "src": "24575:5:64",
                              "subExpression": {
                                "id": 17094,
                                "name": "_i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17079,
                                "src": "24575:2:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 17096,
                            "nodeType": "ExpressionStatement",
                            "src": "24575:5:64"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 17085,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 17082,
                      "name": "_i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17079,
                      "src": "24470:2:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 17083,
                        "name": "_bytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17070,
                        "src": "24475:6:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 17084,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "24482:6:64",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "24475:13:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "24470:18:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17099,
                  "initializationExpression": {
                    "assignments": [
                      17079
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 17079,
                        "mutability": "mutable",
                        "name": "_i",
                        "nameLocation": "24462:2:64",
                        "nodeType": "VariableDeclaration",
                        "scope": 17099,
                        "src": "24457:7:64",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 17078,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "24457:4:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 17081,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 17080,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "24467:1:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "24457:11:64"
                  },
                  "isSimpleCounterLoop": false,
                  "nodeType": "ForStatement",
                  "src": "24452:155:64"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 17102,
                        "name": "_bytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17070,
                        "src": "24631:6:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 17101,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "24624:6:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": {
                        "id": 17100,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "24624:6:64",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 17103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24624:14:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 17068,
                  "id": 17104,
                  "nodeType": "Return",
                  "src": "24617:21:64"
                }
              ]
            },
            "documentation": {
              "id": 17062,
              "nodeType": "StructuredDocumentation",
              "src": "24228:41:64",
              "text": "@notice Converts bytes32 into string."
            },
            "id": 17106,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toString",
            "nameLocation": "24284:8:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17065,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17064,
                  "mutability": "mutable",
                  "name": "_bytes32",
                  "nameLocation": "24301:8:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17106,
                  "src": "24293:16:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17063,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24293:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24292:18:64"
            },
            "returnParameters": {
              "id": 17068,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17067,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17106,
                  "src": "24352:13:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 17066,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "24352:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24351:15:64"
            },
            "scope": 17557,
            "src": "24275:371:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17199,
              "nodeType": "Block",
              "src": "24752:455:64",
              "statements": [
                {
                  "id": 17198,
                  "nodeType": "UncheckedBlock",
                  "src": "24763:437:64",
                  "statements": [
                    {
                      "body": {
                        "id": 17192,
                        "nodeType": "Block",
                        "src": "24836:320:64",
                        "statements": [
                          {
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 17157,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 17142,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 17139,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "arguments": [
                                                {
                                                  "id": 17133,
                                                  "name": "str",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 17108,
                                                  "src": "24894:3:64",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                ],
                                                "id": 17132,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "24888:5:64",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                                  "typeString": "type(bytes storage pointer)"
                                                },
                                                "typeName": {
                                                  "id": 17131,
                                                  "name": "bytes",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "24888:5:64",
                                                  "typeDescriptions": {}
                                                }
                                              },
                                              "id": 17134,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "24888:10:64",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                "typeString": "bytes memory"
                                              }
                                            },
                                            "id": 17136,
                                            "indexExpression": {
                                              "id": 17135,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 17116,
                                              "src": "24899:1:64",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "24888:13:64",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          ],
                                          "id": 17130,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "24882:5:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 17129,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "24882:5:64",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 17137,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "24882:20:64",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "hexValue": "3438",
                                        "id": 17138,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "24905:2:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_48_by_1",
                                          "typeString": "int_const 48"
                                        },
                                        "value": "48"
                                      },
                                      "src": "24882:25:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "id": 17140,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "24881:27:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 17141,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24911:1:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "24881:31:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "||",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 17156,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 17153,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "arguments": [
                                                {
                                                  "id": 17147,
                                                  "name": "str",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 17108,
                                                  "src": "24954:3:64",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                ],
                                                "id": 17146,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "24948:5:64",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                                  "typeString": "type(bytes storage pointer)"
                                                },
                                                "typeName": {
                                                  "id": 17145,
                                                  "name": "bytes",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "24948:5:64",
                                                  "typeDescriptions": {}
                                                }
                                              },
                                              "id": 17148,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "24948:10:64",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                "typeString": "bytes memory"
                                              }
                                            },
                                            "id": 17150,
                                            "indexExpression": {
                                              "id": 17149,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 17116,
                                              "src": "24959:1:64",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "24948:13:64",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          ],
                                          "id": 17144,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "24942:5:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 17143,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "24942:5:64",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 17151,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "24942:20:64",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "hexValue": "3438",
                                        "id": 17152,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "24965:2:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_48_by_1",
                                          "typeString": "int_const 48"
                                        },
                                        "value": "48"
                                      },
                                      "src": "24942:25:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "id": 17154,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "24941:27:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "hexValue": "39",
                                  "id": 17155,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24971:1:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_9_by_1",
                                    "typeString": "int_const 9"
                                  },
                                  "value": "9"
                                },
                                "src": "24941:31:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "24881:91:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "id": 17163,
                            "nodeType": "IfStatement",
                            "src": "24855:197:64",
                            "trueBody": {
                              "id": 17162,
                              "nodeType": "Block",
                              "src": "24992:60:64",
                              "statements": [
                                {
                                  "expression": {
                                    "components": [
                                      {
                                        "hexValue": "30",
                                        "id": 17158,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "25023:1:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      {
                                        "hexValue": "66616c7365",
                                        "id": 17159,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "25026:5:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        },
                                        "value": "false"
                                      }
                                    ],
                                    "id": 17160,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "25022:10:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$",
                                      "typeString": "tuple(int_const 0,bool)"
                                    }
                                  },
                                  "functionReturnParameters": 17114,
                                  "id": 17161,
                                  "nodeType": "Return",
                                  "src": "25015:17:64"
                                }
                              ]
                            }
                          },
                          {
                            "expression": {
                              "id": 17190,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "id": 17164,
                                "name": "res",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17111,
                                "src": "25070:3:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "+=",
                              "rightHandSide": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 17189,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      },
                                      "id": 17175,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "arguments": [
                                                {
                                                  "id": 17169,
                                                  "name": "str",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 17108,
                                                  "src": "25090:3:64",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                ],
                                                "id": 17168,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "25084:5:64",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                                  "typeString": "type(bytes storage pointer)"
                                                },
                                                "typeName": {
                                                  "id": 17167,
                                                  "name": "bytes",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "25084:5:64",
                                                  "typeDescriptions": {}
                                                }
                                              },
                                              "id": 17170,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "25084:10:64",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                "typeString": "bytes memory"
                                              }
                                            },
                                            "id": 17172,
                                            "indexExpression": {
                                              "id": 17171,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 17116,
                                              "src": "25095:1:64",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "25084:13:64",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes1",
                                              "typeString": "bytes1"
                                            }
                                          ],
                                          "id": 17166,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "25078:5:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 17165,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "25078:5:64",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 17173,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "25078:20:64",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "hexValue": "3438",
                                        "id": 17174,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "25101:2:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_48_by_1",
                                          "typeString": "int_const 48"
                                        },
                                        "value": "48"
                                      },
                                      "src": "25078:25:64",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint8",
                                        "typeString": "uint8"
                                      }
                                    }
                                  ],
                                  "id": 17176,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "25077:27:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 17188,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "hexValue": "3130",
                                    "id": 17177,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "25107:2:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_10_by_1",
                                      "typeString": "int_const 10"
                                    },
                                    "value": "10"
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "**",
                                  "rightExpression": {
                                    "components": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 17186,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "id": 17184,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "expression": {
                                              "arguments": [
                                                {
                                                  "id": 17180,
                                                  "name": "str",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 17108,
                                                  "src": "25120:3:64",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                  }
                                                ],
                                                "id": 17179,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "25114:5:64",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                                  "typeString": "type(bytes storage pointer)"
                                                },
                                                "typeName": {
                                                  "id": 17178,
                                                  "name": "bytes",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "25114:5:64",
                                                  "typeDescriptions": {}
                                                }
                                              },
                                              "id": 17181,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "25114:10:64",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                "typeString": "bytes memory"
                                              }
                                            },
                                            "id": 17182,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "25125:6:64",
                                            "memberName": "length",
                                            "nodeType": "MemberAccess",
                                            "src": "25114:17:64",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "-",
                                          "rightExpression": {
                                            "id": 17183,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 17116,
                                            "src": "25134:1:64",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "src": "25114:21:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "-",
                                        "rightExpression": {
                                          "hexValue": "31",
                                          "id": 17185,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "25138:1:64",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_1_by_1",
                                            "typeString": "int_const 1"
                                          },
                                          "value": "1"
                                        },
                                        "src": "25114:25:64",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "id": 17187,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "25113:27:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "25107:33:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "25077:63:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "25070:70:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 17191,
                            "nodeType": "ExpressionStatement",
                            "src": "25070:70:64"
                          }
                        ]
                      },
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 17125,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 17119,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17116,
                          "src": "24808:1:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "expression": {
                            "arguments": [
                              {
                                "id": 17122,
                                "name": "str",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17108,
                                "src": "24818:3:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "id": 17121,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "24812:5:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": {
                                "id": 17120,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "24812:5:64",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 17123,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "24812:10:64",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 17124,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "24823:6:64",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "24812:17:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "24808:21:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 17193,
                      "initializationExpression": {
                        "assignments": [
                          17116
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 17116,
                            "mutability": "mutable",
                            "name": "i",
                            "nameLocation": "24801:1:64",
                            "nodeType": "VariableDeclaration",
                            "scope": 17193,
                            "src": "24793:9:64",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 17115,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "24793:7:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 17118,
                        "initialValue": {
                          "hexValue": "30",
                          "id": 17117,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "24805:1:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "24793:13:64"
                      },
                      "isSimpleCounterLoop": true,
                      "loopExpression": {
                        "expression": {
                          "id": 17127,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "24831:3:64",
                          "subExpression": {
                            "id": 17126,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17116,
                            "src": "24831:1:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 17128,
                        "nodeType": "ExpressionStatement",
                        "src": "24831:3:64"
                      },
                      "nodeType": "ForStatement",
                      "src": "24788:368:64"
                    },
                    {
                      "expression": {
                        "components": [
                          {
                            "id": 17194,
                            "name": "res",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17111,
                            "src": "25178:3:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "hexValue": "74727565",
                            "id": 17195,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "25183:4:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          }
                        ],
                        "id": 17196,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "25177:11:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
                          "typeString": "tuple(uint256,bool)"
                        }
                      },
                      "functionReturnParameters": 17114,
                      "id": 17197,
                      "nodeType": "Return",
                      "src": "25170:18:64"
                    }
                  ]
                }
              ]
            },
            "id": 17200,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tryUint",
            "nameLocation": "24663:7:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17109,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17108,
                  "mutability": "mutable",
                  "name": "str",
                  "nameLocation": "24685:3:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17200,
                  "src": "24671:17:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 17107,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "24671:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24670:19:64"
            },
            "returnParameters": {
              "id": 17114,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17111,
                  "mutability": "mutable",
                  "name": "res",
                  "nameLocation": "24736:3:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17200,
                  "src": "24731:8:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17110,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "24731:4:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17113,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17200,
                  "src": "24741:4:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17112,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "24741:4:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24730:16:64"
            },
            "scope": 17557,
            "src": "24654:553:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17213,
              "nodeType": "Block",
              "src": "25505:108:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 17207,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17204,
                          "src": "25524:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                            "typeString": "struct Witnet.Result memory"
                          }
                        },
                        "id": 17208,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "25531:7:64",
                        "memberName": "success",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16038,
                        "src": "25524:14:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "5769746e65743a20747269656420746f206465636f64652076616c75652066726f6d206572726f72656420726573756c742e",
                        "id": 17209,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "25540:52:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c540643114d8824fc67c5a3bcabc32e042f198b987f1133b221fc24db5c15b9a",
                          "typeString": "literal_string \"Witnet: tried to decode value from errored result.\""
                        },
                        "value": "Witnet: tried to decode value from errored result."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c540643114d8824fc67c5a3bcabc32e042f198b987f1133b221fc24db5c15b9a",
                          "typeString": "literal_string \"Witnet: tried to decode value from errored result.\""
                        }
                      ],
                      "id": 17206,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "25516:7:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 17210,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25516:77:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17211,
                  "nodeType": "ExpressionStatement",
                  "src": "25516:77:64"
                },
                {
                  "id": 17212,
                  "nodeType": "PlaceholderStatement",
                  "src": "25604:1:64"
                }
              ]
            },
            "documentation": {
              "id": 17201,
              "nodeType": "StructuredDocumentation",
              "src": "25221:238:64",
              "text": "===============================================================================================================\n --- 'Witnet.Result' helper methods ----------------------------------------------------------------------------"
            },
            "id": 17214,
            "name": "_isReady",
            "nameLocation": "25474:8:64",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 17205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17204,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "25497:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17214,
                  "src": "25483:20:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17203,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17202,
                      "name": "Result",
                      "nameLocations": [
                        "25483:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "25483:6:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "25483:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25482:22:64"
            },
            "src": "25465:148:64",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17249,
              "nodeType": "Block",
              "src": "25819:274:64",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    },
                    "id": 17234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "expression": {
                          "id": 17226,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17218,
                          "src": "25834:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                            "typeString": "struct Witnet.Result memory"
                          }
                        },
                        "id": 17227,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "25841:5:64",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16041,
                        "src": "25834:12:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 17228,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "25847:9:64",
                      "memberName": "majorType",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19211,
                      "src": "25834:22:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 17231,
                            "name": "WitnetCBOR",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20734,
                            "src": "25866:10:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitnetCBOR_$20734_$",
                              "typeString": "type(library WitnetCBOR)"
                            }
                          },
                          "id": 17232,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "25877:16:64",
                          "memberName": "MAJOR_TYPE_BYTES",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 19227,
                          "src": "25866:27:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        ],
                        "id": 17230,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "25860:5:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint8_$",
                          "typeString": "type(uint8)"
                        },
                        "typeName": {
                          "id": 17229,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "25860:5:64",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 17233,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "25860:34:64",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "25834:60:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 17247,
                    "nodeType": "Block",
                    "src": "25971:115:64",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "hexValue": "5769746e65744c69623a2072656164696e6720616464726573732066726f6d20737472696e67206e6f742079657420737570706f727465642e",
                              "id": 17244,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "26014:59:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_715d12ce0332d5642f444df9d5207c4dcf8c5df17b0f1ce96bf6cc7879482280",
                                "typeString": "literal_string \"WitnetLib: reading address from string not yet supported.\""
                              },
                              "value": "WitnetLib: reading address from string not yet supported."
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_715d12ce0332d5642f444df9d5207c4dcf8c5df17b0f1ce96bf6cc7879482280",
                                "typeString": "literal_string \"WitnetLib: reading address from string not yet supported.\""
                              }
                            ],
                            "id": 17243,
                            "name": "revert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967277,
                              4294967277
                            ],
                            "referencedDeclaration": 4294967277,
                            "src": "26007:6:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (string memory) pure"
                            }
                          },
                          "id": 17245,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "26007:67:64",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 17246,
                        "nodeType": "ExpressionStatement",
                        "src": "26007:67:64"
                      }
                    ]
                  },
                  "id": 17248,
                  "nodeType": "IfStatement",
                  "src": "25830:256:64",
                  "trueBody": {
                    "id": 17242,
                    "nodeType": "Block",
                    "src": "25896:69:64",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "expression": {
                                    "id": 17236,
                                    "name": "result",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17218,
                                    "src": "25928:6:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                                      "typeString": "struct Witnet.Result memory"
                                    }
                                  },
                                  "id": 17237,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "25935:5:64",
                                  "memberName": "value",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16041,
                                  "src": "25928:12:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                                    "typeString": "struct WitnetCBOR.CBOR memory"
                                  }
                                },
                                "id": 17238,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "25941:9:64",
                                "memberName": "readBytes",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 20132,
                                "src": "25928:22:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                                  "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (bytes memory)"
                                }
                              },
                              "id": 17239,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "25928:24:64",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 17235,
                            "name": "toAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16879,
                            "src": "25918:9:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$",
                              "typeString": "function (bytes memory) pure returns (address)"
                            }
                          },
                          "id": 17240,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "25918:35:64",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "functionReturnParameters": 17225,
                        "id": 17241,
                        "nodeType": "Return",
                        "src": "25911:42:64"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 17215,
              "nodeType": "StructuredDocumentation",
              "src": "25621:63:64",
              "text": "@dev Decode an address from the Witnet.Result's CBOR value."
            },
            "id": 17250,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17221,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17218,
                    "src": "25779:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17222,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17220,
                  "name": "_isReady",
                  "nameLocations": [
                    "25770:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "25770:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "25770:16:64"
              }
            ],
            "name": "asAddress",
            "nameLocation": "25699:9:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17219,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17218,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "25730:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17250,
                  "src": "25709:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17217,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17216,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "25709:6:64",
                        "25716:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "25709:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "25709:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25708:29:64"
            },
            "returnParameters": {
              "id": 17225,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17224,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17250,
                  "src": "25805:7:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17223,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "25805:7:64",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25804:9:64"
            },
            "scope": 17557,
            "src": "25690:403:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17267,
              "nodeType": "Block",
              "src": "26297:49:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 17262,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17254,
                          "src": "26315:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                            "typeString": "struct Witnet.Result memory"
                          }
                        },
                        "id": 17263,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "26322:5:64",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16041,
                        "src": "26315:12:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 17264,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "26328:8:64",
                      "memberName": "readBool",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20033,
                      "src": "26315:21:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (bool)"
                      }
                    },
                    "id": 17265,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26315:23:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 17261,
                  "id": 17266,
                  "nodeType": "Return",
                  "src": "26308:30:64"
                }
              ]
            },
            "documentation": {
              "id": 17251,
              "nodeType": "StructuredDocumentation",
              "src": "26101:67:64",
              "text": "@dev Decode a `bool` value from the Witnet.Result's CBOR value."
            },
            "id": 17268,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17257,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17254,
                    "src": "26260:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17258,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17256,
                  "name": "_isReady",
                  "nameLocations": [
                    "26251:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "26251:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "26251:16:64"
              }
            ],
            "name": "asBool",
            "nameLocation": "26183:6:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17255,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17254,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "26211:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17268,
                  "src": "26190:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17253,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17252,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "26190:6:64",
                        "26197:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "26190:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "26190:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26189:29:64"
            },
            "returnParameters": {
              "id": 17261,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17260,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17268,
                  "src": "26286:4:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17259,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "26286:4:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26285:6:64"
            },
            "scope": 17557,
            "src": "26174:172:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17285,
              "nodeType": "Block",
              "src": "26559:50:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 17280,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17272,
                          "src": "26577:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                            "typeString": "struct Witnet.Result memory"
                          }
                        },
                        "id": 17281,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "26584:5:64",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16041,
                        "src": "26577:12:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 17282,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "26590:9:64",
                      "memberName": "readBytes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20132,
                      "src": "26577:22:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (bytes memory)"
                      }
                    },
                    "id": 17283,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26577:24:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "functionReturnParameters": 17279,
                  "id": 17284,
                  "nodeType": "Return",
                  "src": "26570:31:64"
                }
              ]
            },
            "documentation": {
              "id": 17269,
              "nodeType": "StructuredDocumentation",
              "src": "26354:68:64",
              "text": "@dev Decode a `bytes` value from the Witnet.Result's CBOR value."
            },
            "id": 17286,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17275,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17272,
                    "src": "26515:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17276,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17274,
                  "name": "_isReady",
                  "nameLocations": [
                    "26506:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "26506:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "26506:16:64"
              }
            ],
            "name": "asBytes",
            "nameLocation": "26437:7:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17273,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17272,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "26466:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17286,
                  "src": "26445:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17271,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17270,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "26445:6:64",
                        "26452:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "26445:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "26445:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26444:29:64"
            },
            "returnParameters": {
              "id": 17279,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17278,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17286,
                  "src": "26540:12:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 17277,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "26540:5:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26539:14:64"
            },
            "scope": 17557,
            "src": "26428:181:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17304,
              "nodeType": "Block",
              "src": "26819:51:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 17300,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17290,
                            "src": "26854:6:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                              "typeString": "struct Witnet.Result memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                              "typeString": "struct Witnet.Result memory"
                            }
                          ],
                          "id": 17299,
                          "name": "asBytes",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17286,
                          "src": "26846:7:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_Result_$16042_memory_ptr_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (struct Witnet.Result memory) pure returns (bytes memory)"
                          }
                        },
                        "id": 17301,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "26846:15:64",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 17298,
                      "name": "toBytes4",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16895,
                      "src": "26837:8:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
                        "typeString": "function (bytes memory) pure returns (bytes4)"
                      }
                    },
                    "id": 17302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26837:25:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 17297,
                  "id": 17303,
                  "nodeType": "Return",
                  "src": "26830:32:64"
                }
              ]
            },
            "documentation": {
              "id": 17287,
              "nodeType": "StructuredDocumentation",
              "src": "26617:69:64",
              "text": "@dev Decode a `bytes4` value from the Witnet.Result's CBOR value."
            },
            "id": 17305,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17293,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17290,
                    "src": "26780:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17294,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17292,
                  "name": "_isReady",
                  "nameLocations": [
                    "26771:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "26771:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "26771:16:64"
              }
            ],
            "name": "asBytes4",
            "nameLocation": "26701:8:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17291,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17290,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "26731:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17305,
                  "src": "26710:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17289,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17288,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "26710:6:64",
                        "26717:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "26710:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "26710:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26709:29:64"
            },
            "returnParameters": {
              "id": 17297,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17296,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17305,
                  "src": "26806:6:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 17295,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "26806:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26805:8:64"
            },
            "scope": 17557,
            "src": "26692:178:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17323,
              "nodeType": "Block",
              "src": "27083:52:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 17319,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17309,
                            "src": "27119:6:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                              "typeString": "struct Witnet.Result memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                              "typeString": "struct Witnet.Result memory"
                            }
                          ],
                          "id": 17318,
                          "name": "asBytes",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17286,
                          "src": "27111:7:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_Result_$16042_memory_ptr_$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function (struct Witnet.Result memory) pure returns (bytes memory)"
                          }
                        },
                        "id": 17320,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "27111:15:64",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 17317,
                      "name": "toBytes32",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16924,
                      "src": "27101:9:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 17321,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27101:26:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 17316,
                  "id": 17322,
                  "nodeType": "Return",
                  "src": "27094:33:64"
                }
              ]
            },
            "documentation": {
              "id": 17306,
              "nodeType": "StructuredDocumentation",
              "src": "26878:70:64",
              "text": "@dev Decode a `bytes32` value from the Witnet.Result's CBOR value."
            },
            "id": 17324,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17312,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17309,
                    "src": "27043:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17313,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17311,
                  "name": "_isReady",
                  "nameLocations": [
                    "27034:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "27034:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "27034:16:64"
              }
            ],
            "name": "asBytes32",
            "nameLocation": "26963:9:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17310,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17309,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "26994:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17324,
                  "src": "26973:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17308,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17307,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "26973:6:64",
                        "26980:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "26973:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "26973:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "26972:29:64"
            },
            "returnParameters": {
              "id": 17316,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17315,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17324,
                  "src": "27069:7:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17314,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27069:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27068:9:64"
            },
            "scope": 17557,
            "src": "26954:181:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17340,
              "nodeType": "Block",
              "src": "27353:38:64",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "id": 17337,
                      "name": "result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17328,
                      "src": "27371:6:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                        "typeString": "struct Witnet.Result memory"
                      }
                    },
                    "id": 17338,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "27378:5:64",
                    "memberName": "value",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 16041,
                    "src": "27371:12:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory"
                    }
                  },
                  "functionReturnParameters": 17336,
                  "id": 17339,
                  "nodeType": "Return",
                  "src": "27364:19:64"
                }
              ]
            },
            "documentation": {
              "id": 17325,
              "nodeType": "StructuredDocumentation",
              "src": "27143:58:64",
              "text": "@notice Returns the Witnet.Result's unread CBOR value."
            },
            "id": 17341,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17331,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17328,
                    "src": "27298:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17332,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17330,
                  "name": "_isReady",
                  "nameLocations": [
                    "27289:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "27289:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "27289:16:64"
              }
            ],
            "name": "asCborValue",
            "nameLocation": "27216:11:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17329,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17328,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "27249:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17341,
                  "src": "27228:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17327,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17326,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "27228:6:64",
                        "27235:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "27228:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "27228:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27227:29:64"
            },
            "returnParameters": {
              "id": 17336,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17335,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17341,
                  "src": "27324:22:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 17334,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17333,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "27324:10:64",
                        "27335:4:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "27324:15:64"
                    },
                    "referencedDeclaration": 19218,
                    "src": "27324:15:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27323:24:64"
            },
            "scope": 17557,
            "src": "27207:184:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17360,
              "nodeType": "Block",
              "src": "27630:50:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 17355,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17345,
                          "src": "27648:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                            "typeString": "struct Witnet.Result memory"
                          }
                        },
                        "id": 17356,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "27655:5:64",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16041,
                        "src": "27648:12:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 17357,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "27661:9:64",
                      "memberName": "readArray",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19800,
                      "src": "27648:22:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (struct WitnetCBOR.CBOR memory[] memory)"
                      }
                    },
                    "id": 17358,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27648:24:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct WitnetCBOR.CBOR memory[] memory"
                    }
                  },
                  "functionReturnParameters": 17354,
                  "id": 17359,
                  "nodeType": "Return",
                  "src": "27641:31:64"
                }
              ]
            },
            "documentation": {
              "id": 17342,
              "nodeType": "StructuredDocumentation",
              "src": "27399:77:64",
              "text": "@notice Decode array of CBOR values from the Witnet.Result's CBOR value. "
            },
            "id": 17361,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17348,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17345,
                    "src": "27573:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17349,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17347,
                  "name": "_isReady",
                  "nameLocations": [
                    "27564:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "27564:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "27564:16:64"
              }
            ],
            "name": "asCborArray",
            "nameLocation": "27491:11:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17346,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17345,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "27524:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17361,
                  "src": "27503:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17344,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17343,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "27503:6:64",
                        "27510:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "27503:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "27503:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27502:29:64"
            },
            "returnParameters": {
              "id": 17354,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17353,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17361,
                  "src": "27599:24:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17351,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 17350,
                        "name": "WitnetCBOR.CBOR",
                        "nameLocations": [
                          "27599:10:64",
                          "27610:4:64"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 19218,
                        "src": "27599:15:64"
                      },
                      "referencedDeclaration": 19218,
                      "src": "27599:15:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                        "typeString": "struct WitnetCBOR.CBOR"
                      }
                    },
                    "id": 17352,
                    "nodeType": "ArrayTypeName",
                    "src": "27599:17:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_CBOR_$19218_storage_$dyn_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "27598:26:64"
            },
            "scope": 17557,
            "src": "27482:198:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17378,
              "nodeType": "Block",
              "src": "28282:52:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 17373,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17365,
                          "src": "28300:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                            "typeString": "struct Witnet.Result memory"
                          }
                        },
                        "id": 17374,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "28307:5:64",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16041,
                        "src": "28300:12:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 17375,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "28313:11:64",
                      "memberName": "readFloat16",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20163,
                      "src": "28300:24:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_int32_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (int32)"
                      }
                    },
                    "id": 17376,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "28300:26:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int32",
                      "typeString": "int32"
                    }
                  },
                  "functionReturnParameters": 17372,
                  "id": 17377,
                  "nodeType": "Return",
                  "src": "28293:33:64"
                }
              ]
            },
            "documentation": {
              "id": 17362,
              "nodeType": "StructuredDocumentation",
              "src": "27688:461:64",
              "text": "@dev Decode a fixed16 (half-precision) numeric value from the Witnet.Result's CBOR 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`."
            },
            "id": 17379,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17368,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17365,
                    "src": "28244:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17369,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17367,
                  "name": "_isReady",
                  "nameLocations": [
                    "28235:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "28235:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "28235:16:64"
              }
            ],
            "name": "asFixed16",
            "nameLocation": "28164:9:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17366,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17365,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "28195:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17379,
                  "src": "28174:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17364,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17363,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "28174:6:64",
                        "28181:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "28174:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "28174:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28173:29:64"
            },
            "returnParameters": {
              "id": 17372,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17371,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17379,
                  "src": "28270:5:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int32",
                    "typeString": "int32"
                  },
                  "typeName": {
                    "id": 17370,
                    "name": "int32",
                    "nodeType": "ElementaryTypeName",
                    "src": "28270:5:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int32",
                      "typeString": "int32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28269:7:64"
            },
            "scope": 17557,
            "src": "28155:179:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17397,
              "nodeType": "Block",
              "src": "28568:57:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 17392,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17383,
                          "src": "28586:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                            "typeString": "struct Witnet.Result memory"
                          }
                        },
                        "id": 17393,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "28593:5:64",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16041,
                        "src": "28586:12:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 17394,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "28599:16:64",
                      "memberName": "readFloat16Array",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20296,
                      "src": "28586:29:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_array$_t_int32_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (int32[] memory)"
                      }
                    },
                    "id": 17395,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "28586:31:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                      "typeString": "int32[] memory"
                    }
                  },
                  "functionReturnParameters": 17391,
                  "id": 17396,
                  "nodeType": "Return",
                  "src": "28579:38:64"
                }
              ]
            },
            "documentation": {
              "id": 17380,
              "nodeType": "StructuredDocumentation",
              "src": "28342:79:64",
              "text": "@dev Decode an array of fixed16 values from the Witnet.Result's CBOR value."
            },
            "id": 17398,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17386,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17383,
                    "src": "28521:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17387,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17385,
                  "name": "_isReady",
                  "nameLocations": [
                    "28512:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "28512:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "28512:16:64"
              }
            ],
            "name": "asFixed16Array",
            "nameLocation": "28436:14:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17384,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17383,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "28472:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17398,
                  "src": "28451:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17382,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17381,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "28451:6:64",
                        "28458:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "28451:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "28451:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28450:29:64"
            },
            "returnParameters": {
              "id": 17391,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17390,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17398,
                  "src": "28547:14:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_int32_$dyn_memory_ptr",
                    "typeString": "int32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17388,
                      "name": "int32",
                      "nodeType": "ElementaryTypeName",
                      "src": "28547:5:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int32",
                        "typeString": "int32"
                      }
                    },
                    "id": 17389,
                    "nodeType": "ArrayTypeName",
                    "src": "28547:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int32_$dyn_storage_ptr",
                      "typeString": "int32[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28546:16:64"
            },
            "scope": 17557,
            "src": "28427:198:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17415,
              "nodeType": "Block",
              "src": "28829:48:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 17410,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17402,
                          "src": "28847:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                            "typeString": "struct Witnet.Result memory"
                          }
                        },
                        "id": 17411,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "28854:5:64",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16041,
                        "src": "28847:12:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 17412,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "28860:7:64",
                      "memberName": "readInt",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20355,
                      "src": "28847:20:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_int256_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (int256)"
                      }
                    },
                    "id": 17413,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "28847:22:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 17409,
                  "id": 17414,
                  "nodeType": "Return",
                  "src": "28840:29:64"
                }
              ]
            },
            "documentation": {
              "id": 17399,
              "nodeType": "StructuredDocumentation",
              "src": "28633:69:64",
              "text": "@dev Decode an `int64` value from the Witnet.Result's CBOR value."
            },
            "id": 17416,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17405,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17402,
                    "src": "28793:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17406,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17404,
                  "name": "_isReady",
                  "nameLocations": [
                    "28784:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "28784:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "28784:16:64"
              }
            ],
            "name": "asInt",
            "nameLocation": "28717:5:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17403,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17402,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "28744:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17416,
                  "src": "28723:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17401,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17400,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "28723:6:64",
                        "28730:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "28723:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "28723:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28722:29:64"
            },
            "returnParameters": {
              "id": 17409,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17408,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17416,
                  "src": "28819:3:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 17407,
                    "name": "int",
                    "nodeType": "ElementaryTypeName",
                    "src": "28819:3:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28818:5:64"
            },
            "scope": 17557,
            "src": "28708:169:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17434,
              "nodeType": "Block",
              "src": "29232:53:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 17429,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17420,
                          "src": "29250:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                            "typeString": "struct Witnet.Result memory"
                          }
                        },
                        "id": 17430,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "29257:5:64",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16041,
                        "src": "29250:12:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 17431,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "29263:12:64",
                      "memberName": "readIntArray",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20426,
                      "src": "29250:25:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_array$_t_int256_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (int256[] memory)"
                      }
                    },
                    "id": 17432,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "29250:27:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                      "typeString": "int256[] memory"
                    }
                  },
                  "functionReturnParameters": 17428,
                  "id": 17433,
                  "nodeType": "Return",
                  "src": "29243:34:64"
                }
              ]
            },
            "documentation": {
              "id": 17417,
              "nodeType": "StructuredDocumentation",
              "src": "28885:206:64",
              "text": "@dev Decode an array of integer numeric values from a Witnet.Result as an `int[]` array.\n @param result An instance of Witnet.Result.\n @return The `int[]` decoded from the Witnet.Result."
            },
            "id": 17435,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17423,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17420,
                    "src": "29187:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17424,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17422,
                  "name": "_isReady",
                  "nameLocations": [
                    "29178:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "29178:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "29178:16:64"
              }
            ],
            "name": "asIntArray",
            "nameLocation": "29106:10:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17421,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17420,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "29138:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17435,
                  "src": "29117:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17419,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17418,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "29117:6:64",
                        "29124:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "29117:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "29117:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29116:29:64"
            },
            "returnParameters": {
              "id": 17428,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17427,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17435,
                  "src": "29213:12:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr",
                    "typeString": "int256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17425,
                      "name": "int",
                      "nodeType": "ElementaryTypeName",
                      "src": "29213:3:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "id": 17426,
                    "nodeType": "ArrayTypeName",
                    "src": "29213:5:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                      "typeString": "int256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29212:14:64"
            },
            "scope": 17557,
            "src": "29097:188:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17452,
              "nodeType": "Block",
              "src": "29614:51:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 17447,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17439,
                          "src": "29632:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                            "typeString": "struct Witnet.Result memory"
                          }
                        },
                        "id": 17448,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "29639:5:64",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16041,
                        "src": "29632:12:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 17449,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "29645:10:64",
                      "memberName": "readString",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20511,
                      "src": "29632:23:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_string_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (string memory)"
                      }
                    },
                    "id": 17450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "29632:25:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 17446,
                  "id": 17451,
                  "nodeType": "Return",
                  "src": "29625:32:64"
                }
              ]
            },
            "documentation": {
              "id": 17436,
              "nodeType": "StructuredDocumentation",
              "src": "29293:184:64",
              "text": "@dev Decode a `string` value from the Witnet.Result's CBOR value.\n @param result An instance of Witnet.Result.\n @return The `string` decoded from the Witnet.Result."
            },
            "id": 17453,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17442,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17439,
                    "src": "29569:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17443,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17441,
                  "name": "_isReady",
                  "nameLocations": [
                    "29560:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "29560:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "29560:16:64"
              }
            ],
            "name": "asText",
            "nameLocation": "29492:6:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17440,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17439,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "29520:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17453,
                  "src": "29499:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17438,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17437,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "29499:6:64",
                        "29506:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "29499:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "29499:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29498:29:64"
            },
            "returnParameters": {
              "id": 17446,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17445,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17453,
                  "src": "29594:13:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 17444,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "29594:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29593:15:64"
            },
            "scope": 17557,
            "src": "29483:182:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17471,
              "nodeType": "Block",
              "src": "30007:56:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 17466,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17457,
                          "src": "30025:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                            "typeString": "struct Witnet.Result memory"
                          }
                        },
                        "id": 17467,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "30032:5:64",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16041,
                        "src": "30025:12:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 17468,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "30038:15:64",
                      "memberName": "readStringArray",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20582,
                      "src": "30025:28:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (string memory[] memory)"
                      }
                    },
                    "id": 17469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30025:30:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                      "typeString": "string memory[] memory"
                    }
                  },
                  "functionReturnParameters": 17465,
                  "id": 17470,
                  "nodeType": "Return",
                  "src": "30018:37:64"
                }
              ]
            },
            "documentation": {
              "id": 17454,
              "nodeType": "StructuredDocumentation",
              "src": "29673:189:64",
              "text": "@dev Decode an array of strings from the Witnet.Result's CBOR value.\n @param result An instance of Witnet.Result.\n @return The `string[]` decoded from the Witnet.Result."
            },
            "id": 17472,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17460,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17457,
                    "src": "29959:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17461,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17459,
                  "name": "_isReady",
                  "nameLocations": [
                    "29950:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "29950:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "29950:16:64"
              }
            ],
            "name": "asTextArray",
            "nameLocation": "29877:11:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17458,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17457,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "29910:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17472,
                  "src": "29889:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17456,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17455,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "29889:6:64",
                        "29896:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "29889:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "29889:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29888:29:64"
            },
            "returnParameters": {
              "id": 17465,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17464,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17472,
                  "src": "29985:15:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17462,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "29985:6:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 17463,
                    "nodeType": "ArrayTypeName",
                    "src": "29985:8:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29984:17:64"
            },
            "scope": 17557,
            "src": "29868:195:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17489,
              "nodeType": "Block",
              "src": "30382:49:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 17484,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17476,
                          "src": "30400:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                            "typeString": "struct Witnet.Result memory"
                          }
                        },
                        "id": 17485,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "30407:5:64",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16041,
                        "src": "30400:12:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 17486,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "30413:8:64",
                      "memberName": "readUint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20603,
                      "src": "30400:21:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (uint256)"
                      }
                    },
                    "id": 17487,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30400:23:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 17483,
                  "id": 17488,
                  "nodeType": "Return",
                  "src": "30393:30:64"
                }
              ]
            },
            "documentation": {
              "id": 17473,
              "nodeType": "StructuredDocumentation",
              "src": "30071:182:64",
              "text": "@dev Decode a `uint64` value from the Witnet.Result's CBOR value.\n @param result An instance of Witnet.Result.\n @return The `uint` decoded from the Witnet.Result."
            },
            "id": 17490,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17479,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17476,
                    "src": "30345:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  }
                ],
                "id": 17480,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 17478,
                  "name": "_isReady",
                  "nameLocations": [
                    "30336:8:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17214,
                  "src": "30336:8:64"
                },
                "nodeType": "ModifierInvocation",
                "src": "30336:16:64"
              }
            ],
            "name": "asUint",
            "nameLocation": "30268:6:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17477,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17476,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "30296:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17490,
                  "src": "30275:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17475,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17474,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "30275:6:64",
                        "30282:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "30275:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "30275:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30274:29:64"
            },
            "returnParameters": {
              "id": 17483,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17482,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17490,
                  "src": "30371:4:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17481,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "30371:4:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30370:6:64"
            },
            "scope": 17557,
            "src": "30259:172:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17505,
              "nodeType": "Block",
              "src": "30751:54:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 17500,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17494,
                          "src": "30769:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                            "typeString": "struct Witnet.Result memory"
                          }
                        },
                        "id": 17501,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "30776:5:64",
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 16041,
                        "src": "30769:12:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 17502,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "30782:13:64",
                      "memberName": "readUintArray",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 20674,
                      "src": "30769:26:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                        "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (uint256[] memory)"
                      }
                    },
                    "id": 17503,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30769:28:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "functionReturnParameters": 17499,
                  "id": 17504,
                  "nodeType": "Return",
                  "src": "30762:35:64"
                }
              ]
            },
            "documentation": {
              "id": 17491,
              "nodeType": "StructuredDocumentation",
              "src": "30439:195:64",
              "text": "@dev Decode an array of `uint64` values from the Witnet.Result's CBOR value.\n @param result An instance of Witnet.Result.\n @return The `uint[]` decoded from the Witnet.Result."
            },
            "id": 17506,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "asUintArray",
            "nameLocation": "30649:11:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17495,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17494,
                  "mutability": "mutable",
                  "name": "result",
                  "nameLocation": "30682:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17506,
                  "src": "30661:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17493,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17492,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "30661:6:64",
                        "30668:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "30661:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "30661:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30660:29:64"
            },
            "returnParameters": {
              "id": 17499,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17498,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17506,
                  "src": "30731:13:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17496,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "30731:4:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17497,
                    "nodeType": "ArrayTypeName",
                    "src": "30731:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30730:15:64"
            },
            "scope": 17557,
            "src": "30640:165:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17529,
              "nodeType": "Block",
              "src": "31254:284:64",
              "statements": [
                {
                  "assignments": [
                    17517
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17517,
                      "mutability": "mutable",
                      "name": "success",
                      "nameLocation": "31460:7:64",
                      "nodeType": "VariableDeclaration",
                      "scope": 17529,
                      "src": "31455:12:64",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 17516,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "31455:4:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 17522,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    },
                    "id": 17521,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 17518,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17510,
                        "src": "31470:4:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      },
                      "id": 17519,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "31475:3:64",
                      "memberName": "tag",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19217,
                      "src": "31470:8:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "3339",
                      "id": 17520,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "31482:2:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_39_by_1",
                        "typeString": "int_const 39"
                      },
                      "value": "39"
                    },
                    "src": "31470:14:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "31455:29:64"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 17525,
                        "name": "success",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17517,
                        "src": "31516:7:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "id": 17526,
                        "name": "cbor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17510,
                        "src": "31525:4:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                          "typeString": "struct WitnetCBOR.CBOR memory"
                        }
                      ],
                      "expression": {
                        "id": 17523,
                        "name": "Witnet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17557,
                        "src": "31502:6:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                          "typeString": "type(library Witnet)"
                        }
                      },
                      "id": 17524,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "31509:6:64",
                      "memberName": "Result",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16042,
                      "src": "31502:13:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_Result_$16042_storage_ptr_$",
                        "typeString": "type(struct Witnet.Result storage pointer)"
                      }
                    },
                    "id": 17527,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31502:28:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                      "typeString": "struct Witnet.Result memory"
                    }
                  },
                  "functionReturnParameters": 17515,
                  "id": 17528,
                  "nodeType": "Return",
                  "src": "31495:35:64"
                }
              ]
            },
            "documentation": {
              "id": 17507,
              "nodeType": "StructuredDocumentation",
              "src": "31059:59:64",
              "text": "@dev Decode a CBOR value into a Witnet.Result instance."
            },
            "id": 17530,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_resultFromCborValue",
            "nameLocation": "31133:20:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17511,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17510,
                  "mutability": "mutable",
                  "name": "cbor",
                  "nameLocation": "31177:4:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17530,
                  "src": "31154:27:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_memory_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 17509,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17508,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "31154:10:64",
                        "31165:4:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "31154:15:64"
                    },
                    "referencedDeclaration": 19218,
                    "src": "31154:15:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31153:29:64"
            },
            "returnParameters": {
              "id": 17515,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17514,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17530,
                  "src": "31223:20:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Result_$16042_memory_ptr",
                    "typeString": "struct Witnet.Result"
                  },
                  "typeName": {
                    "id": 17513,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 17512,
                      "name": "Witnet.Result",
                      "nameLocations": [
                        "31223:6:64",
                        "31230:6:64"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 16042,
                      "src": "31223:13:64"
                    },
                    "referencedDeclaration": 16042,
                    "src": "31223:13:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Result_$16042_storage_ptr",
                      "typeString": "struct Witnet.Result"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31222:22:64"
            },
            "scope": 17557,
            "src": "31124:414:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 17555,
              "nodeType": "Block",
              "src": "31718:204:64",
              "statements": [
                {
                  "body": {
                    "id": 17553,
                    "nodeType": "Block",
                    "src": "31752:163:64",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          },
                          "id": 17545,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "baseExpression": {
                              "id": 17541,
                              "name": "_bytes32",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17533,
                              "src": "31771:8:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "id": 17543,
                            "indexExpression": {
                              "id": 17542,
                              "name": "_length",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17536,
                              "src": "31780:7:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "31771:17:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 17544,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "31792:1:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "31771:22:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 17548,
                        "nodeType": "IfStatement",
                        "src": "31767:68:64",
                        "trueBody": {
                          "id": 17547,
                          "nodeType": "Block",
                          "src": "31795:40:64",
                          "statements": [
                            {
                              "id": 17546,
                              "nodeType": "Break",
                              "src": "31814:5:64"
                            }
                          ]
                        }
                      },
                      {
                        "id": 17552,
                        "nodeType": "UncheckedBlock",
                        "src": "31849:55:64",
                        "statements": [
                          {
                            "expression": {
                              "id": 17550,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": false,
                              "src": "31878:10:64",
                              "subExpression": {
                                "id": 17549,
                                "name": "_length",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17536,
                                "src": "31878:7:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 17551,
                            "nodeType": "ExpressionStatement",
                            "src": "31878:10:64"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 17540,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 17538,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17536,
                      "src": "31736:7:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "hexValue": "3332",
                      "id": 17539,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "31746:2:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_32_by_1",
                        "typeString": "int_const 32"
                      },
                      "value": "32"
                    },
                    "src": "31736:12:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17554,
                  "isSimpleCounterLoop": false,
                  "nodeType": "ForStatement",
                  "src": "31729:186:64"
                }
              ]
            },
            "documentation": {
              "id": 17531,
              "nodeType": "StructuredDocumentation",
              "src": "31546:64:64",
              "text": "@dev Calculate length of string-equivalent to given bytes32."
            },
            "id": 17556,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_toStringLength",
            "nameLocation": "31625:15:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17534,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17533,
                  "mutability": "mutable",
                  "name": "_bytes32",
                  "nameLocation": "31649:8:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17556,
                  "src": "31641:16:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17532,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "31641:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31640:18:64"
            },
            "returnParameters": {
              "id": 17537,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17536,
                  "mutability": "mutable",
                  "name": "_length",
                  "nameLocation": "31704:7:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17556,
                  "src": "31699:12:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17535,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "31699:4:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31698:14:64"
            },
            "scope": 17557,
            "src": "31616:306:64",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          }
        ],
        "scope": 17558,
        "src": "135:31790:64",
        "usedErrors": [],
        "usedEvents": []
      }
    ],
    "src": "35:31890:64"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.25+commit.b61c2a91.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2024-12-05T09:36:04.538Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}